我正在學習書中的實體框架4。實體SQL問題
我嘗試做一些查詢與實體SQL是這樣的:
using (var context = new BAEntities())
{
string str = "SELECT VALUE c " +
"FROM BAEntities.Contacts " +
"AS c " +
"WHERE c IS NOT OF(BAModel.Customer)";
ObjectQuery<Contact> qry = context.CreateQuery<Contact>(str);
Console.WriteLine(qry.Count());
}
我查詢的目的是把聯繫類型的所有對象,但不是的客戶類型。 其中,客戶從聯繫
繼承,但我得到了以下錯誤:
類型「BAModel.Customer」找不到。確保加載了所需的模式 ,並且正確導入了名稱空間。近類型名稱,1號線, 列64
但是,如果我不使用LINQ查詢到的實體是這樣的:
ObjectQuery<Contact> qry = context.Contacts.Where(c => !(c is Customer));
然後程序可以正常運行。
因此,爲什麼在實體SQL BAModel.Customer
沒有找到,而我在模型所在的同一個項目中運行的代碼。
請幫我這個。
在此先感謝。
不幸的是,比較一個EF查詢和你的adhoc SQL並不是一個好的比較。 EF查詢知道如何按照RDBMS的預期構建SQL查詢,而不會出現語法錯誤。 – 2011-06-08 14:01:58
我只是爲了闡明該程序可以正確運行而進行比較。我只是困惑爲什麼與實體SQL EF無法找到該模型。 – adaapanya 2011-06-08 17:38:23