3
NinjectでEF 4.3を使用しています。私は単純なDataContextを持っており、そのためのインタフェースを作成しました。 MyDataContextのEntity Framework 4.3 - DataContextインターフェイスでConnectionStringを設定する
public interface IMyDataContext
{
DbSet<ComplexType> ComplexTypes { get; set; }
int SaveChanges();
}
実装:
public class MyDataContext : DbContext, IMyDataContext
{
public DbSet<ComplexType> ComplexTypes { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder); //Not sure if this is necessary..
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
そして、私はNInjectにそれを追加している:それはシンプルなインターフェースです
Kernel.Bind<IMyDataContext>().To<MyDataContext>();
動作しない接続文字列名のMyDataContextを使用し、 IMyDataContextを使用すると、完全なアセンブリ名という別のデータベースが生成されます。 1つのテーブル/クラスのみがマップされています。
<connectionStrings>
<add name="MyDataContext"
connectionString="Server=MyPc\SQLEXPRESS;Database=MyDataContext;Persist Security Info=True;Integrated Security=true;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
私はデータコンテキストにコンストラクタをオーバーライドすることができます知っている....が、私は、これは「自動マップ」になっていたと思いました。何かご意見は?
ありがとうございます!
ありがとうございました - 上記の実装を追加しました。私はdatacontextの名前を使う方法を望んでいましたが、これは簡単だと思います。感謝します。 – Shibbz