加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – EntityFramework中实体实例的性能影响

发布时间:2020-12-15 21:15:19 所属栏目:百科 来源:网络整理
导读:对于具有实体框架的提供者模式,我应该使用什么行为? public class TestProvider : IDisposable{ public Entities entities = new Entities(); public IEnumerableTag GetAll() { return entities.Tag.ToList(); } public ... #region IDisposable Members p
对于具有实体框架的提供者模式,我应该使用什么行为?

public class TestProvider : IDisposable
{
    public Entities entities = new Entities();

    public IEnumerable<Tag> GetAll()
    {
        return entities.Tag.ToList();
    }

    public ...

    #region IDisposable Members

    public void Dispose()
    {
        entities.Dispose();
    }

    #endregion
}

或者可以使用:

public class TestProvider
{
    public IEnumerable<Tag> GetAll()
    {
        using (var entities = new Entities())
        {
            return entities.Tag.ToList();
        }
    }

    public ...
}

它是否意味着性能?有什么优点和缺点?

解决方法

这取决于TestProvider应存在多长时间以及您希望对检索到的实体执行哪些操作.通常,ObjectContext实例应尽可能在最短的时间内使用,但它也应该代表单个工作单元.不应共享ObjectContext实例.我回答了相关的问题 here.

这意味着您的方法在某些情况下都是正确的.如果您希望检索实体,修改它们并使用相同的提供程序实例保存它们,则第一种方法是可行的.如果你只是想要检索实体,你不想立即修改它们并且你不想选择其他任何东西,那么第二种方法是可以的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读