C# EF根据用户选择插入多个实体
我们有一个ASP.NETMVC应用程序,允许用户提供一组逻辑上与一起的筛选条件。其结果是以图形方式向用户显示有多少项符合这些标准。然后,用户可以接受这些条件,在另一个表中创建一组实体 在我看来,这是一种直观而草率的方法:C# EF根据用户选择插入多个实体,c#,entity-framework-4,C#,Entity Framework 4,我们有一个ASP.NETMVC应用程序,允许用户提供一组逻辑上与一起的筛选条件。其结果是以图形方式向用户显示有多少项符合这些标准。然后,用户可以接受这些条件,在另一个表中创建一组实体 在我看来,这是一种直观而草率的方法: // where "context" is an EF Context... foreach (var person in allMatchingPeople) { context.MailRequest.Add(new MailRequest { Pe
// 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
在这种情况下,使用存储过程EF不提供这种功能。您可以这样编写它
allMatchingPeople.ForEach(p => context.MailRequest.Add(p));