【问题标题】:Derived fields in ado.net entity frameworkado.net 实体框架中的派生字段
【发布时间】:2009-09-05 09:52:44
【问题描述】:

我有一个如下所示的持久类:

公共部分类单元 { 公共字符串名称 { 获取;放; } 公共长 LengthInMM { 得到;放; } 公共十进制体积系数 { 得到{返回长度InMM * LengthInMM * LengthInMM; } } }

现在派生字段 (VolumeCoefficient) 永远不会被显式分配。如何将其保存在 ADO.NET 实体框架中?

我想过继承 Unit 类并覆盖 getter 和 setter,但这似乎太混乱了。

【问题讨论】:

  • 为什么要保存计算属性的值?
  • 因为我保存的一些派生字段不像这个例子那么具体。例如,我的域中的价格字段将由可能随时间变化的商品价格和固定系数的乘积得出。

标签: c# entity-framework ado.net


【解决方案1】:

你为什么不把它声明为你的部分类的另一部分?

由设计师生成:

public partial class Unit
{
    public string Name { get; set; }
    public long LengthInMM { get; set; }
}

在不同的文件中

public partial class Unit
{
    public decimal VolumeCoefficient 
    {
        get { return LengthInMM * LengthInMM * LengthInMM; } 
    }
}

【讨论】:

  • 在 ado.net 实体框架中(如果我错了,请纠正我)不允许为自己的字段实现自己的 getter 和 setter,因为它们已经在自动生成的文件中实现。有没有一种方法可以不用子类化,还是有一种“正确”的方法我应该这样做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多