コード ファースト マイグレーションを使用しようとすると、このエラーが発生します。
私のコンテキストには、接続名を持つコンストラクターがあります。
public class VeraContext : DbContext, IDbContext
{
public VeraContext(string NameOrConnectionStringName = "VeraDB")
: base(NameOrConnectionStringName)
{
}
public IDbSet<User> Users { get; set; }
public IDbSet<Product> Products { get; set; }
public IDbSet<IntCat> IntCats { get; set; }
}
この接続名は、プロジェクトの実行時に ninject で挿入されます。上記のコードのようにデフォルトとして指定しましたが、これは役に立ちませんでした。
kernel.Bind<IDbContext>()
.To<VeraContext>()
.WithConstructorArgument("NameOrConnectionStringName", "VeraDB");
「Enable-Migrations」で移行を追加しようとすると、次のエラーがスローされます。
ターゲット コンテキスト 'VeraData.EF.Infrastructure.VeraContext' は構築できません。既定のコンストラクターを追加するか、IDbContextFactory の実装を提供します。
コンストラクターを削除するVeraContext
と機能しますが、名前として別のデータベースを作成しますVeraData.EF.Infrastructure.VeraContext
。
ninject
コードの最初の移行を使用するときではなく、プロジェクトの実行時にのみ接続文字列を渡すと思います。とにかく、コードの最初の移行を使用するときに、接続名のデフォルトを挿入/提供できますか?