7

場合によっては、アプリケーションの実行中に ID 挿入をオンにする必要があります。

modelBuilder.Entity<Activity>().Property(p => p.Id).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None);

しかし、OnModelCreating は 1 回しか実行されないため、これを実現するにはどうすればよいでしょうか? モデルの再現は可能ですか?

4

1 に答える 1

5

OnModelCreating は常に一度だけ呼び出されます。モデルを再作成する必要がある場合は、手動で作成する必要がありますDbModelBuilder

var builder = new DbModelBuilder(DbModelBuilderVersion.Latest);
// setup whole model
DbModel model = builder.Build(connection);
DbCompiledModel compiledModel = model.Compile();
// cache compiledModel for future usage - compilation is very expensive

var context = new DbContext(compiledModel);

これを避けるようにしてください。ID 挿入は EF ではうまく機能しないため、ほとんどの場合、SQL を使用してデータを直接挿入する必要があり、マッピングを変更する必要はありません。

于 2012-11-21T12:56:09.557 に答える