3
我使用EntityFramework 5與代碼優先遷移。我想要做的是根據構建配置指定不同的種子數據。例如:EntityFramework遷移 - 每構建配置播種
protected override void Seed(EFDbContext context)
{
// This will be run in every Build configuration
context.Table1.AddOrUpdate(new Table1 { Field1 = "Foo", Field2 = "Bar" });
#if DEBUG
// This will only be executed if we are Debuging
context.Table1.AddOrUpdate(new Table1 { Field1 = "Blah", Field2 = "De Blah" });
context.Table2.AddOrUpdate(new Table2 { Field1 = "Development Only" });
}
我知道代碼也許是錯誤的,我可以找出正確的方法調用一次,我知道採取這樣做的最佳途徑。
EF有沒有內置的方法,我錯過了做這種事情?
感謝
UPDATE
我到底使用的代碼是:
protected override void Seed(EFDbContext context)
{
// This will be run in every Build configuration
context.Table1.AddOrUpdate(t = t.Field1, new Table1 { Field1 = "Foo", Field2 = "Bar" });
#if DEBUG
// This will only be executed if we are Debuging
context.Table1.AddOrUpdate(t = t.Field2, new Table1 { Field1 = "Blah", Field2 = "De Blah" });
context.Table2.AddOrUpdate(t = t.Field1, new Table2 { Field1 = "Development Only" });
#endif
}
這是爲雅尼克說,但在AddOrUpdate方法,你需要在傳遞EF將用它來確定它是否爲新條目。不是我的問題的一部分,但認爲我應該提供正確的方法供將來參考。