17

私のソリューションには3つのクラスプロジェクトがあります。1.MVC4プロジェクト2.ドメイン3.テスト

MVC4プロジェクトでは、接続文字列が次のようになっているweb.configファイルを追加しました。

<add name="EfDbContext"  connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>

DbContextを継承するドメインプロジェクトにEfDbContextという名前のクラスがあります。

ブラウザでウェブサイトを表示すると、サーバーが見つかりませんというエラーが表示されます。

EfDbContextクラスをデバッグしたところ、Database.Connection.ConnectionStringがデータベースをEfDbContextとして\SqlExpressに設定されていることがわかりました。

何故ですか?

4

3 に答える 3

17

コンテキストクラスが別のプロジェクトにある場合は、コンテキストへの完全な名前空間として接続文字列が必要です

例えば:

<add name = "YourClassProject.EfDbContext" connectionString = "Data Source = .; Initial Catalog = SportsStore; Integrated Security = true;" ProviderName = "System.Data.SqlClient" />
于 2012-10-08T03:25:05.447 に答える
11

コンストラクターに渡す接続文字列名を使用してDbContextを作成する必要があります

public class UnicornsContext : DbContext
{
    public UnicornsContext()
        : base("EfDbContext")
    {
    }
}

http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-2-connections-and-models.aspx

于 2012-10-08T03:35:35.853 に答える
1

最後に、VSによって作成されたweb.configファイルのViewsフォルダーに接続エントリを追加したことに気付きました。

私の悪い。

于 2012-10-08T18:38:46.873 に答える