我正在尝试使用Enitity SQL来查询数据,但如果edmx文件在另一个项目中,则会抛出异常。以下是我的测试步骤。
创建一个类库项目并向其添加一个edmx文件,从数据库创建。
创建一个控制台应用程序,添加类库项目以引用并将app.config文件复制到该项目。
编写如下代码
using (NorthwindEntities context = new NorthwindEntities())
{
string queryString = @"SELECT VALUE cus
FROM NorthwindEntities.Customers AS cus
WHERE cus.ID > 10";
ObjectQuery<Customers> cusQuery =
context.CreateQuery<Customers>(queryString);
List<Customers> cusList = cusQuery.ToList();
}
当我运行Console Application项目时,抛出异常:“'ID'不是当前加载的模式中'NorthwindModel.Customers'类型的成员。”
似乎架构没有加载到项目中,任何人都有想法? 附加问题:在这个查询中,我选择了这种类型的所有属性,如果我只选择一些属性,如何返回匿名类型的ObjectQuery?
任何建议都表示赞赏。
答案 0 :(得分:0)
这不是EF问题。
您手动编写了SQL语句,而不是使用EDMX文件中的表定义。
如果您尝试在SQL Server的Query提示中执行SQL语句,您将看到它也在那里失败。
尝试这样的事情:
var cus = from customers in context.Customers select customers;
var cusList = cus.ToList();