实体框架"无法找到查询模式的实现"

时间:2017-05-22 16:25:28

标签: c# entity-framework linq linq-to-sql

我试图使用实体框架,但我不断收到错误"基础提供商在Open上失败了。"。我将密码存储在getConnectionString函数的代码中,提供了一个有效的连接字符串,我知道它有效,因为我始终使用该函数(尽管在我的非实体框架程序中)。我在Model1文件中定义了Customer。客户是一个数据库。

// gets valid connection string
string cs = getConnectionString();

var entityConnectionStringBuilder = new EntityConnectionStringBuilder();
entityConnectionStringBuilder.Provider = "System.Data.SqlClient";
entityConnectionStringBuilder.ProviderConnectionString = cs;
entityConnectionStringBuilder.Metadata = "res://*";


CUSTEntities1 CustContext = new  CUSTEntities1(entityConnectionStringBuilder.ToString());

var q = (from i in CustContext.Customers
         where i.CustLen == 15
         select new CustomerClass
         {
            fid1 = i.fid1,
            fid21 = i.fid2,
            custlen = (int)i.CustLen
          }).ToList<CustomerClass>();

我是Entity Framework的新手,我正在尝试制作一个简单的测试应用程序来帮助我理解它。任何帮助将不胜感激。我从头开始重建项目,以确保我拥有EF所需的所有部件。

1 个答案:

答案 0 :(得分:1)

你应该从上下文中查询,EF不知道如何单独使用该类。

查询需要以

开头
from customer in context.Customers

由于您似乎使用的是模型或数据库优先方法,因此上下文应该已经包含DbSet。在你的情况下它在CUSTEntities1