我想創建一個通用方法在我的基類中用於我的存儲庫,並且遇到問題。這裏的方法...實體框架的通用存儲庫方法中的錯誤
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