J'essaie de créer une méthode générique à utiliser dans ma classe de base pour mes référentiels et j'ai un problème. Voici la méthode ...Erreur dans la méthode de référentiel générique pour Entity Framework
public virtual T First(System.Linq.Expressions.Expression<Func<T, bool>> where, List<string> properties)
{
IQueryable<T> query = null;
if (where != null)
{
query = _context.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name.ToString())).Where(where);
}
else
{
query = _context.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name.ToString()));
}
foreach (string s in properties)
{
query = query.Include(s);
}
T _result = (T)query.First();
return _result;
}
Quand je lance le code, il me donne cette erreur:
'Company' could not be resolved in the current scope or context. Make sure that all referenced variables are in scope, that required schemas are loaded, and that namespaces are referenced correctly. Near escaped identifier, line 1, column 1.
J'ai une idée pourquoi il fait cela, je ne sais pas comment résoudre il. Je pense qu'il le fait parce que mon ObjectContext ne connaît pas l'objet "Company" mais il connaît "Companies". Des idées pour résoudre le problème??
L'erreur se produit sur cette ligne:
T _result = (T)query.First();
Merci!
Habituellement, les noms des ensembles d'entités sont pluralisés, c'est pourquoi le contexte connaît les entreprises. Quelle version de EF utilisez-vous? –
J'utilise la version 4. Oui, et je suppose que c'est pour ça que ça ne marche pas ... mais y a-t-il un moyen de le faire fonctionner? –
Utilisez 'FirstOrDefault' au lieu de' First' dans le cas où la requête ne renvoie aucun résultat. – TheCloudlessSky