gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:52:16 25 4
gpt4 key购买 nike

对于具有 Entity Framework 的提供者模式,我应该使用什么行为?

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 .

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

关于c# - EntityFramework 中实体实例的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4933965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com