我正在从书中学习 Entity Framework 4。
我尝试使用 Entity 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());
}
我的查询目的是获取所有联系人类型的对象,而不是客户类型的对象。其中,Customer 继承自 Contact
但我收到以下错误:
找不到类型“BAModel.Customer”。确保加载了所需的模式并且正确导入了命名空间。靠近类型名称,第 1 行,第 64 列。
但是,如果我像这样使用 LINQ to Entities 进行查询:
ObjectQuery<Contact> qry = context.Contacts.Where(c => !(c is Customer));
然后程序可以正常运行。
那么,为什么在 Entity SQLBAModel.Customer
中找不到,而我在模型所在的同一个项目中运行代码。
请帮助我。
提前致谢。