EF根据用户选择插入多个实体

时间:2011-07-19 18:23:25

标签: c# entity-framework-4

我们有一个ASP .NET MVC应用程序,允许用户提供一组逻辑AND一起的过滤条件。结果是以图形方式向用户显示符合这些条件的项目数。然后,用户可以接受这些条件,以在另一个表中创建一组实体。

这是直观的,IMO,草率的方法:

// where "context" is an EF Context...
foreach (var person in allMatchingPeople) {
    context.MailRequest.Add(new MailRequest {
        Person = person
    });
}

context.SaveChanges();

我不喜欢它是迭代的。如果它是SQL我可以做类似的事情:

INSERT INTO MailRequest (PersonId)
SELECT Id
FROM Person
WHERE ... -- filter by criteria provided from user input

2 个答案:

答案 0 :(得分:2)

在这种情况下,使用存储过程EF不提供此类功能。

答案 1 :(得分:0)

你可以像这样写

allMatchingPeople.ForEach(p => context.MailRequest.Add(p));