Как массовое обновление в EF - PullRequest
3 голосов
/ 31 июля 2011

У меня есть следующий метод для службы WCF:

    /// <summary>
    /// Receives the result of a request processing
    /// </summary>
    /// <param name="results">The resulting statuses for the processed account requests</param>
    /// <returns>Whether the response was successfully handled</returns>
    public bool SendRequestProcessingResult(IEnumerable<RequestProcessingResult> results)
    {
        foreach (var result in results)
        {
            // update entity
        }
    }

Есть ли способ обновить все сущности одновременно? Должен ли я просто добавить каждое обновление, а затем SaveChanges? Какой лучший способ сделать такое «массовое» обновление в EF 4.1?

1 Ответ

5 голосов
/ 31 июля 2011

Должен ли я просто добавить каждое обновление, а затем SaveChanges?

Да.

Имейте в виду, что EF - это ORM, поэтому он не предназначен (я имею в виду производительность) для больших пакетных обновлений такого рода.Если вам нужно извлечь из этого больше производительности, вы практически приступили к написанию пакета SQL-операторов и выполнению их старомодным способом.

Большинство людей (я имею в виду, кроме Facebook, Twitter)и т. д.) обычно не вижу проблем с тем, что вы предлагаете, и чем ниже вы получаете уровень, тем больше намерений вашего кода теряется во всей технической реализации.

Важно подчеркнутьчто нет необходимости улучшать производительность кода, если вы не измерили его и обнаружили, что его не хватает.Сначала кодируйте правильность, удобочитаемость и обслуживание, затем измеряйте производительность и вносите целевые улучшения там, где они требуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...