对实体框架中的连接字符串进行硬编码

时间:2017-05-22 21:54:54

标签: c# entity-framework linq

我知道很多人认为硬编码连接信息是一个坏主意,但我有一个特定的情况,我需要这样做。请不要贬低我,因为你认为这是一个坏主意 - 再次,非常具体的情况。

使用下面的代码,我在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>();

    }
} 

提前感谢您提供的任何帮助和见解。我确实查看了其他相关帖子并尝试了元数据的各种更改,但它们不起作用。

1 个答案:

答案 0 :(得分:1)

鉴于您在评论中分享的类定义,您的问题在于Entities类。

它的构造函数应该将连接字符串传递给DbContext基类构造函数:

public Entities(string nameOrConnectionString) : base(nameOrConnectionString) {}

您的项目一切顺利!