2016-08-04 53 views
0

通常情況下,我在Seed()方法中這樣做。如何從沒有foreach語句的列表中添加或更新?

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 methodsparams數組作爲最後一個參數。這意味着如果您提供多個項目中的一個,則會創建一個包含這些項目的數組。

或者,你可以提供一個數組,所以這會工作:

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

documentation爲PARAMS和包含的例子可能是有用的。

相關問題