web-dev-qa-db-ja.com

Code First Entity Framework接続文字列

私のソリューションには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クラスをデバッグしたところ、データベースがEfDbContextであるDatabase.Connection.ConnectionStringが\ SqlExpressに設定されていることがわかりました。

何故ですか?

16
Suneel Dixit

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

私の悪い。

1
Suneel Dixit

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

例えば:

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

コンストラクタに渡す接続文字列名で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

11
Felix