EF Вставка многих объектов на основе выбора пользователя - PullRequest
2 голосов
/ 19 июля 2011

У нас есть приложение ASP .NET MVC, которое позволяет пользователям предоставлять набор критериев фильтрации, которые логически объединяются.Результатом этого является графическое представление пользователю, сколько элементов соответствует этим критериям.Затем пользователь может принять эти критерии для создания набора сущностей в другой таблице.

Это интуитивный и, 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 ]

2 голосов
/ 19 июля 2011

В этом случае используйте хранимую процедуру EF, которая не предлагает такую ​​функциональность.

0 голосов
/ 19 июля 2011

Вы можете написать это так

allMatchingPeople.ForEach(p => context.MailRequest.Add(p));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...