我想创建一个通用方法在我的基类中用于我的存储库,并且遇到问题。这里的方法...实体框架的通用存储库方法中的错误
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;
}
当我运行代码,它给了我这个错误:
'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.
我有它为什么这样的想法,我只是不知道如何解决它。我认为这是因为我的ObjectContext不知道对象“公司”,但它确实知道“公司”。有想法该怎么解决这个吗??
错误发生在这条线:
T _result = (T)query.First();
谢谢!
通常实体集名称是复数形式,这就是上下文知道公司的原因。你使用哪个版本的EF? – 2010-07-14 14:52:55
我正在使用版本4.是的,我猜这就是为什么它不工作......但有没有办法让它工作? – 2010-07-14 14:55:43
如果查询不返回任何结果,则使用'FirstOrDefault'而不是'First'。 – TheCloudlessSky 2010-07-14 15:09:47