【问题标题】:Is it possible to NOT use Attach and Detach in Entity Framework?是否可以不在实体框架中使用附加和分离?
【发布时间】:2014-05-19 13:22:31
【问题描述】:

我总是对使用附加和分离方法感到困惑。可以不用吗?

如果是,那为什么人们通常不使用这个概念?

我认为有一些选项可以覆盖 SaveChanges()...

【问题讨论】:

  • 对我来说似乎是一个有效的问题。我没有搜索过网站或谷歌,你可能已经找到了答案,但我明白你为什么会问它..
  • 因为要么我不理解这个概念,要么我跳出框框思考。
  • 哦,是的,我不是说你发错了,我是说我基本上也不理解反对票。我的回答帮助你理解了吗?如果是这样,请标记答案,如果没有,请告诉我您仍然遇到的问题,我可以尝试澄清。顺便说一句,刚刚添加了另一个链接,该链接为您提供了不同的用例,可能有助于进一步澄清。

标签: .net entity-framework


【解决方案1】:

由于您使用上下文的方式,您必须附加/分离实体。如果您在上下文中使用上下文并操作数据,则不必担心附加/分离。

using(var context = new DbContext())
{
     var item = context.GetItem();
     item.Name = "FooBar";
     context.SaveChange();
}

因此,如果您使用存储库模式或任何其他数据访问方法,将数据从 DAL 中拉出并在业务层或前端使用它,那么您很可能不得不使用附加/分离.您也不必手动分离对象,一旦您关闭连接,它就会成为一个分离的对象,在保存之前您只需重新附加到上下文。

这是一个我非常喜欢的存储库。它现在变得有点臃肿,但它可以让你非常快速地处理数据。我喜欢他们对数据库集的“延迟加载”,我自己已经剥离了 ORM 的抽象,因为我知道我想坚持使用实体框架。

解释回购的博客: http://blog.longle.net/2013/05/11/genericizing-the-unit-of-work-pattern-repository-pattern-with-entity-framework-in-mvc/

实际回购站点: https://genericunitofworkandrepositories.codeplex.com

这里是直接来自 M$ 的来源,它可以让您更好地了解如何/何时重新连接。

http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

这是另一个直接处理不同案例以及如何附加实体的帮助链接。 http://msdn.microsoft.com/en-us/data/jj592676.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多