2

EFを使用してモデルファーストデータベースを作成すると、web.config接続文字列が無視され、バックグラウンドで独自の処理が行われることに気付きました。次に、コンストラクターで独自の接続文字列を設定する方法を見つけました。

public class MainDataContext : DbContext
{
    public MainDataContext()
    {
        this.Database.Connection.ConnectionString = "MY CONNECTION STRING THAT IS ACTUALLY USED";
    }
}

質問:web.configの接続文字列を使用するように強制/設定するにはどうすればよいですか?

データコンテキストと同じように接続文字列に名前を付けると機能すると言われていますが、私には機能しません。名前を付けても機能しないことは確かですDefaultConnectionString

<add name="MainDataContext" providerName="System.Data.SqlClient"
     connectionString="Server=(LocalDB)\\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ProjectDB.mdf;" />

update-database -v -fコンソールから実行しようとするとエラーが発生しました。

4

1 に答える 1

1

あなたはこのようなことを試すことができます:

public MainDataContext() :
        base(typeof(MainDataContext).Name)
    {
    }

Web.configでの接続文字列宣言が正しいことを確認しますか?このような:

<?xml version="1.0"?>
<configuration>
<connectionStrings>
    <add name="MyDatabase" connectionString="server=localhost;User Id=user;password=password;Persist Security Info=True;database=mydatabase" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
</configuration>
于 2012-11-28T16:09:21.443 に答える