私はASP.NetMVC3と一緒にCodeFirstEntityFrameworkを勉強しています。最初は、些細なEFDbContext
クラスがフォルダー内のWebUI
mvcプロジェクトに配置されていましたConcrete
。
public class EFDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
そしてそれは
public class EFProductRepository : IProductRepository
{
private EFDbContext context = new EFDbContext();
public IQueryable<Product> Products
{
get
{
return context.Products;
}
}
}
どこ
public interface IProductRepository
{
IQueryable<Product> Products { get; }
}
そこで、ルートWeb.configに次のコードを追加しました。
<connectionStrings>
<add name="WebUI.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
そしてそれは働いた。
Domain
それから私はそれを別のクラスライブラリプロジェクトに取り入れることにしました。App.configファイルがあります。そこで、接続文字列をそこに移動することにしました。
<connectionStrings>
<add name="Domain.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
しかし、最終的にEFはそれを見るのをやめました。
EFProductRepository
ルートフォルダを使用してプロジェクトに移動EFDbContext
しました。したがって、コンストラクターを呼び出すコードは、つまりプロジェクトにあります。Domain
Concrete
EFProductRepository
Domain
App.configの名前をWeb.Configに変更しようとしました。WebUI
接続文字列をプロジェクトのWeb.configに戻そうとしました。どちらも機能しません。
私は何が間違っているのですか?