Comment Extraire les Données de la base de données à l'aide de Entity Framework 6
J'ai créer une requête pour renvoyer des données de deux tables dans lesquelles ils sont rejoints par jointure interne. Bien que, comme la requête semble très bien, j'obtiens le message d'erreur lorsque j'essaie d'accéder aux noms des champs de la requête. Comment dois-je utiliser .SingleOrDefault() fonction dans cette requête. Quelqu'un peut-il m'aider comment dois-je procéder.
private void FindByPincode(int iPincode)
{
using (ABCEntities ctx = new ABCEntities())
{
var query = from c in ctx.Cities
join s in ctx.States
on c.StateId equals s.StateId
where c.Pincode == iPincode
select new {
s.StateName,
c.CityName,
c.Area};
//var query = ctx.Cities.AsNoTracking().SingleOrDefault(_city => _city.Pincode == iPincode);
if (query != null)
{
cboState.SelectedItem.Text =query.State; //Getting error "Could not found"
cboCity.SelectedItem.Text = query.CityName; //Getting error "Could not found"
txtArea.Text = query.Area; //Getting error "Could not found"
}
}
}
Merci d'avance.
L'erreur est "Système".Linq.IQueryable<AnonymousType#1>' ne contient pas une définition pour 'StateName' et aucune méthode d'extension 'StateName' acceptant un premier argument de type 'System.Linq.IQueryable<AnonymousType#1>' a pu être trouvé (vous manque une directive using ou une référence d'assembly?)"
OriginalL'auteur Jaan | 2013-11-25
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
.First().SingleOrDefault();
, pourriez-vous svp me dire la raison ?OriginalL'auteur Jurgen Vandw
peut-il que vous sélectionnez un champ nommé StateName, puis acessing État.
Veuillez fournir plus de détails sur l'erreur et de la structure de classe de votre code
OriginalL'auteur CaveCoder
Voici comment une situation similaire a fonctionné pour moi:
Remarquez que j'ai utilisé de la requête.() Là-haut, c'est parce que la requête != null retourne toujours true. Cependant, tous les() vérifie si une requête a retourné 1 ou plusieurs enregistrements, si oui() renvoie true, et si une requête ne renvoie aucun enregistrement puis Tout() renvoie la valeur false.
Vous pouvez utiliser SingleOrDefault() pour qu'une telle situation.
OriginalL'auteur Talha Imam