2011-07-19 31 views
2

我們有一個ASP .NET MVC應用程序,它允許用戶提供一組邏輯與的過濾器標準。這樣做的結果是以圖形方式顯示用戶有多少項符合這些標準。然後用戶可以接受這些標準來在另一個表中創建一組實體。EF基於用戶選擇插入許多實體

這是直觀,國際海事組織,草率的做法:

// 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

在這種情況下,使用存儲過程EF不提供這樣的功能。

0

你可以寫這樣的

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