2016-03-23 8 views
0

私は、AddOrUpdateメソッドを使ってデータベースをシードするいくつかの異なるアプローチを見てきました。コード一次移行でデータベースにシードを付けるときには、どの方法が理想的ですか?

1.

context.People.AddOrUpdate(
     new Person() { Id = 1, Name = "Harry", LastName="Henderson"}, 
     new Person() { Id= 2, Name = "Henry", LastName="Ford"} 
    ); 

2.

var people = new List<Person>{ 
    new Person{Id= 1, Name = "Harry", LastName="Henderson"}, 
    new Person{Id= 2, Name = "Henry", LastName="Ford"} 
}; 
    people.ForEach(newPerson => context.People.AddOrUpdate(alreadyExistsProperty => alreadyExistsProperty.Id, newPerson)); 
    context.SaveChanges(); 

誰かがより理想的な/ベスト・プラクティスのアプローチである説明していただけます。なぜあなたは他の人の上にあることをやっていますか、それとも全く問題ではありませんか?

+0

あなたの最初の例は、重複したIDのチェックがありませんが、より読みやすいように見えます。 –

答えて

0

シードは常に実行されます。 2番目の例では、重複キー例外がポップします。

+0

私は理解していますが、私は何を求めているのかは、データベースをシードするための理想的な/ベストプラクティスのアプローチです。 – g5insider

+1

例外をポップしないもの。 –

関連する問題