每个线程有多个上下文

时间:2011-07-07 16:07:42

标签: .net asp.net entity-framework

在一个线程中创建多个Context以将数据保存在Web应用程序中是否安全? 我有下面的代码,并担心它是否适用于大量的迭代。 这样的代码有问题吗?

    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 :(得分:0)

您的代码没有问题。上面的代码将在每次调用时执行SQL INSERT语句。您将代码放在using块中,这是处理对象的最佳方式。

我只有在从多个交易的EF模型中选择时才遇到性能问题;在那种情况下,我尽可能缓存并且没有任何问题。