我知道很多人认为硬编码连接信息是一个坏主意,但我有一个特定的情况,我需要这样做。请不要贬低我,因为你认为这是一个坏主意 - 再次,非常具体的情况。
使用下面的代码,我在LINQ语句中收到以下错误:底层提供程序在Open上失败。我已经独立测试了连接字符串,并且连接它没有问题。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var entityConnectionStringBuilder = new EntityConnectionStringBuilder();
entityConnectionStringBuilder.Provider = "System.Data.SqlClient";
entityConnectionStringBuilder.ProviderConnectionString = "Data Source=DESKTOP-A43456\\MAIN;Initial Catalog=MAIN;Persist Security Info=True;User ID=AppUser;Password=3092409SALFKJ93LK342";
entityConnectionStringBuilder.Metadata = "res://*";
MyEntities CustContext = new MyEntities(entityConnectionStringBuilder.ToString());
var q = (from i in CustContext.Customers
where i.fid3 == 15
select new CustClass
{
fid1 = i.fid1,
fid2 = i.fid2,
fid3 = (int)i.fid3
}).ToList<CustClass>();
}
}
提前感谢您提供的任何帮助和见解。我确实查看了其他相关帖子并尝试了元数据的各种更改,但它们不起作用。
答案 0 :(得分:1)
鉴于您在评论中分享的类定义,您的问题在于Entities
类。
它的构造函数应该将连接字符串传递给DbContext基类构造函数:
public Entities(string nameOrConnectionString) : base(nameOrConnectionString) {}
您的项目一切顺利!