我试图使用实体框架,但我不断收到错误"基础提供商在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所需的所有部件。
答案 0 :(得分:1)
你应该从上下文中查询,EF不知道如何单独使用该类。
查询需要以
开头from customer in context.Customers
由于您似乎使用的是模型或数据库优先方法,因此上下文应该已经包含DbSet。在你的情况下它在CUSTEntities1
。