2017-05-22 15 views
0

多くの人が接続情報をハードコードするのは悪い考えだと私は知っていますが、私はそれを行う必要がある特定の状況があります。あなたがこれが悪い考えであると思うので、私を押し下げてはいけません。また、非常に特殊な状況です。Entity Frameworkで接続文字列をハードコーディングする

以下のコードを使用すると、LINQステートメントで次のエラーが発生します。私は接続文字列を個別にテストしており、接続に問題はありません。

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>(); 

    } 
} 

ご協力いただきありがとうございました。他の関連する投稿を見て、メタデータのさまざまな変更を試みましたが、うまくいきませんでした。

+3

InnerExceptionを読み取ります。 – SLaks

+0

複数のアクティブな結果セットが必要 – SLaks

+0

「MyEntities」のコンストラクタを表示できますか? – Brunner

答えて

1

コメントで共有したクラス定義がある場合、問題はEntitiesクラスにあります。

そのコンストラクタは、DbContextベースクラスのコンストラクタに接続文字列を渡す必要があります。

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

プロジェクトとすべてのベスト!

+0

ありがとう、私の友人:) – Missy

関連する問題