如果edmx文件在另一个项目中,则实体SQL不起作用

时间:2012-06-23 05:34:15

标签: entity-framework entity-sql

我正在尝试使用Enitity SQL来查询数据,但如果edmx文件在另一个项目中,则会抛出异常。以下是我的测试步骤。

  1. 创建一个类库项目并向其添加一个edmx文件,从数据库创建。

  2. 创建一个控制台应用程序,添加类库项目以引用并将app.config文件复制到该项目。

  3. 编写如下代码

    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();
    }
    
  4. 当我运行Console Application项目时,抛出异常:“'ID'不是当前加载的模式中'NorthwindModel.Customers'类型的成员。”

    似乎架构没有加载到项目中,任何人都有想法? 附加问题:在这个查询中,我选择了这种类型的所有属性,如果我只选择一些属性,如何返回匿名类型的ObjectQuery?

    任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

这不是EF问题。

您手动编写了SQL语句,而不是使用EDMX文件中的表定义。

如果您尝试在SQL Server的Query提示中执行SQL语句,您将看到它也在那里失败。

尝试这样的事情:

var cus = from customers in context.Customers select customers;
var cusList = cus.ToList();