Несколько контекстов на поток - PullRequest
1 голос
/ 07 июля 2011

Безопасно ли создавать несколько контекстов в одном потоке для сохранения данных в веб-приложении? У меня есть код, как показано ниже, и я беспокоюсь, будет ли он работать на большом количестве итераций Есть ли проблемы с таким кодом?

    private void SaveContent(TargetSegment ts,
                                   Folder f,
                                   IEnumerable<Module> m)
    {
        using(var ctx = new EntityContainer())
        {
            var entity = CreateEntityFrom(ts, f, m);

            ctx.Entities.Add(entity);
            ctx.SaveChanges();
        } 
    }

    foreach(var ts in TargetSegments)
    {
        var f = FindFolder(ts);
        var m = ExtractModules(ts, f);

        SaveContent(ts, f, m);
    }

1 Ответ

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

Нет проблем с вашим кодом. Этот код выше будет выполнять инструкцию SQL INSERT каждый раз, когда она вызывается. У вас есть код в блоке using, который является лучшим способом избавиться от объекта.

Я столкнулся с проблемами производительности только при выборе из модели EF для нескольких транзакций; и в этом случае я по возможности кэшировал, и у меня не было проблем.

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