POCO生成クラスをエンティティとして使用するときにデータベースを作成できません
-
21-12-2019 - |
質問
何らかの理由で私はデータベース設計から開発を開始しました。それから私は私のエンタティティティ、エンティティ構成、およびコンテキストを生成するためにPOCOを使用しました。
設定ファイルの接続文字列に指定されたデータベースが存在しない場合、アプリケーションを新しいデータベースを作成したいと思います。
現時点に直面した問題は次のとおりです。 モデルのDBSETからFirstoreFaultを取得しようとしているときは、次のエラーメッセージが表示されます。
System.Data.Entity.Core.EntityCommandExecutionException:エラーです コマンド定義の実行中に発生しました。インナーを見る 詳細の例外---> system.data.sqlclient.Sclexception: 無効なオブジェクト名 'dbo.role'。
私のエンティティの次の構成を使用しています
internal class RoleConfiguration : EntityTypeConfiguration<Role>
{
public RoleConfiguration(string schema = "dbo")
{
ToTable("Role", schema);
HasKey(x => x.RoleId);
Property(x => x.RoleId).HasColumnName("RoleId").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
HasMany(t => t.Roles_RoleId).WithMany(t => t.Roles_ChildRoleId).Map(m =>
{
m.ToTable("RoleRoles", schema);
m.MapLeftKey("ChildRoleId");
m.MapRightKey("RoleId");
});
}
}
. 解決
EFにデータベースを作成したい場合は、コンテキストコンストラクターで正しいイニシャイザを設定する必要があります。例えば、このように:
public YourContextEntities() : base("name=ConnectionStringName")
{
Database.SetInitializer(new CreateDatabaseIfNotExists<YourContextEntities>());
}
. 所属していません StackOverflow