【问题标题】:Entity Framework get CurrentContext实体框架获取 CurrentContext
【发布时间】:2009-03-12 12:26:38
【问题描述】:

我正在扩展实体的部分类以拥有一个方法。如何获取对实体附加到的上下文的引用(如果有)以从同一上下文中获取更多实体。

如果不清楚,基本上我要写的代码是这样的(空中代码):

public void AssignSize(int width, int height)
{
    var size = (from s in this.context.Sizes
                where s.width == width && s.height == height
                select s).FirstOrDefault();

    ...
}

注意:这行不通。

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    您需要将上下文传递给此方法,或者更好的是,与其传递宽度和高度,不如传递大小对象本身。

    【讨论】:

    • 对示例的跛行采取的观点 :o) 所以如果不传递上下文就没有办法吗?真可惜。
    • 考虑这个:var myEntity = new MyEntity(); myEntity.AssignSize(1,2);这只是将实体耦合到特定上下文的一个问题。
    【解决方案2】:

    看看这篇文章:

    how-to-get-the-objectcontext-from-an-entity

    它显示了从实体获取上下文的解决方法。

    【讨论】:

    • 请注意,这不适用于从 EF6 开始:所有实体都是简单的 POCO,不再来自 EntityObject 并且不知道它们的上下文(但它们的上下文知道它们)。
    • @dudeNumber4 该链接现在已断开
    • @RyanDansie 我当然希望我能看到那篇博文所说的内容,因为在我看来,EF6 实体是如何简单的 POCO 似乎是不可能的。
    • web.archive.org/web/20120202002212/http://… 虽然不确定这是否是个好主意。
    【解决方案3】:

    实体 db = 新实体();

    Entity 是你在 EF 中所说的名字...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多