我的問題最初是:DropCreateDatabaseIfModelChanges無法更新數據庫?EF:遷移.Configuration的種子與DropCreateDatabaseAlways的種子?
但我改變了它,因爲這兩種方法的作用對我來說比較模糊 。
...................
我所知道的,到目前爲止,使用DropCreateDatabaseIfModelChanges
將重新創建數據庫時的模式變化(IfModelChanges)。這意味着我不必擔心遷移,因爲無論如何它都會重新創建數據庫,對吧? 我首先創建一個類DataInitializer
從DropCreateDatabaseIfModelChanges
繼承,並與初始數據實現的Seed
方法,並從Main
方法稱爲Database.SetInitializer(new DataInitializer());
,但我仍然得到錯誤有關模型變化,我要補充遷移(因爲我退學來自實體的屬性以測試數據初始化)。 這是初始化類:
public class DataInitializer : DropCreateDatabaseIfModelChanges<BlogContext>
{
protected override void Seed(BlogContext context)
{
var blogs = new List<Blog>
{
new Blog {FollowersCount=456, Name="ABC", Url="abc.com" },
new Blog {FollowersCount=789, Name="DEF", Url="def.com" },
new Blog {FollowersCount=246, Name="GHI", Url="ghi.com" },
new Blog {FollowersCount=135, Name="JKL", Url="jkl.com" },
new Blog {FollowersCount=258, Name="MNO", Url="mno.com" },
};
blogs.ForEach(x => context.Blogs.Add(x));
}
}
這是我的問題:它的工作原理,如果遷移啓用,如果我在執行初始數據 - 其中之一將是Configuration類種子的方法會發生什麼叫(我有初始化與配置類已經數據的種子法)後,我加入遷移
,它引發此錯誤(I是否稱爲SetInitializer與否):
已經有一個數據庫中名爲'Blogs'的對象即
我在代碼中已經 –