2016-08-04 6 views
0

通常、私はのSeed()メソッドでこれを実行します。foreach文なしでリストからAddUrUpdateを実行する方法は?

List<Thing> stuff = ...; 
foreach(Thing thing in stuff) 
    model.Things.AddOrUpdate(thing); 

ここで、私はコメントで、このようなことを示唆していることに気付きました。

context.People.AddOrUpdate(
    p => p.FullName, 
    new Person { FullName = "Andrew Peters" }, 
    new Person { FullName = "Brice Lambson" }, 
    new Person { FullName = "Rowan Miller" } 
); 

そして、私は私のものリストにそれをフックすることができます場合、私はそれだけで明示的に宣言、個々のインスタンスを上に動作するかどうか興味が?

私は以下のことを試しましたが、うまくいきませんでしたが、おそらく私は間違ったツリーで吠えることに気付きました。私が吠え声を上げる前に、私は謙虚にそれができるかどうか尋ねています。あなたの例で使用し

context.Things.AddOrUpdate(_ => _, stuff); 

答えて

1

どちらextension methodsは、最後のパラメータとしてparams配列を持っています。つまり、1つ以上の項目を指定すると、それらの項目を含む配列が作成されます。

代わりに、あなただけのアレイを提供することができますので、これは動作します:

model.Things.AddOrUpdate(stuff.ToArray()); 

documentationをのparamsのためにおよび実施例は役に立つかもしれません含まれています。

関連する問題