POCO生成クラスをエンティティとして使用するときにデータベースを作成できません

StackOverflow https://stackoverflow.com//questions/23011817

質問

何らかの理由で私はデータベース設計から開発を開始しました。それから私は私のエンタティティティ、エンティティ構成、およびコンテキストを生成するために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>());
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top