0

我正在尝试使用 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();
    }
    

当我运行控制台应用程序项目时,抛出异常:“'ID' 不是当前加载的架构中的'NorthwindModel.Customers' 类型的成员。”

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

任何建议表示赞赏。

4

1 回答 1

0

这不是 EF 问题。

您已经手动编写了 SQL 语句,您没有使用 EDMX 文件中的表定义。

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

尝试这样的事情:

var cus = from customers in context.Customers select customers;
var cusList = cus.ToList();
于 2012-06-23T09:55:39.073 回答