通常,我会在 Seed()方法中使用这样的东西。
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" }
);
我很好奇它是否仅适用于明确声明的个别实例,或者我是否可以将其连接到 stuff 列表?
我尝试了以下,当然没有用,然后,我意识到也许我在错误的树上吠叫开始。所以在我发出过多的吠叫之前,我谦卑地问这是否有可能。
context.Things.AddOrUpdate(_ => _, stuff);
答案 0 :(得分:2)
您的示例中使用的extension methods都有params
数组作为最后一个参数。这意味着如果您提供一个或多个项目,那么将创建一个包含这些项目的数组。
或者,你可以只提供一个数组,这样就可以了:
model.Things.AddOrUpdate(stuff.ToArray());
params的documentation和包含的示例可能很有用。