我有部分类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;
            }
        }
    }

我怎样才能做到这一点?

===============>>#1 票数:1 已采纳

这实际上很难,因为您永远不需要它。 如果您需要这样做,则您的实体对象的设计是错误的,它正在执行某些应在其他地方执行的操作。 单个TaxReportItem永远不需要了解其他税收报告项目并从数据库中加载它们,除非其他项目依赖于此项目(它们构成一个汇总)。 在这种情况下,您应该对主体项中的从属项具有导航属性。

按照您的问题。 如果您需要加载其他项目,则必须具有上下文实例才能执行此操作。 您可以获取用于加载当前项目的实例并使用它加载其他实体(糟糕的解决方案),也可以创建上下文的新实例并使用它来加载其他实体(甚至更差的解决方案)。

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

  ask by Alex translate from so

未解决问题?本站智能推荐: