【问题标题】:querying in EntityObject在 EntityObject 中查询
【发布时间】:2011-12-12 13:12:47
【问题描述】:

我有部分类 TaxReportItem 部分方法 OnActualVolumeChanging(double value):

public partial class TaxReportItem 
{
      partial void OnActualVolumeChanging(double value)
     {
        if (Tax != null)
        {
            Payment = value*Tax.TaxRate;
        }
    }
}

在这种方法中,我想获取上下文中存在的所有 TaxReportItems 集合(类似这样):

  partial void OnActualVolumeChanging(double value)
    {
        var sum = 0.0;
        if (Tax != null)
        {
            Payment = value*Tax.TaxRate;

            foreach (var taxReportItem in ????)
            {
                sum += taxReportItem.Sum;
            }
        }
    }

我怎样才能做到这一点?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    这实际上非常困难,因为您永远不需要它。如果你需要这个,你的实体对象的设计是错误的,它正在做一些应该在其他地方做的事情。单个TaxReportItem 永远不需要了解其他税务报告项目并从数据库中加载它们,除非其他项目依赖于该项目(它们形成一个聚合)。在这种情况下,您应该对主要项目中的依赖项具有导航属性。

    关注您的问题。如果您需要加载其他项目,则必须具有上下文实例才能执行此操作。您可以获取instance used to load current item 并使用它来加载其他实体(错误的解决方案),或者您可以创建一个新的上下文实例并使用它来加载其他实体(更糟糕的解决方案)。

    从链接的文章中可以看出,从实体本身获取当前上下文实例并不容易,它有一些先决条件,可以追溯到第一段。这很难,因为这是错误的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2011-07-07
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2012-07-21
      • 2012-02-07
      相关资源
      最近更新 更多