使用具有附加属性的Entity Framework

时间:2014-07-02 20:52:08

标签: c# entity-framework

我有2个表,一个名为产品,另一个名为样本,带有产品的外键。 样本只包含十进制值和时间戳。 一个产品有一个名称和它的名称。但我想要一个价格(十进制)与产品相关联。价格应为样本中的最新样本。

我对使用实体框架感兴趣,但是如果不直接在表格中进行某些"计算"我怎样才能实现具有价格值的产品实体?需要事先进行吗?

1 个答案:

答案 0 :(得分:1)

有一个名为NotMapped的属性可以让你创建一个不会映射到数据库的属性。首先执行代码,这样的事情应该有效:

public class Product
{
    public int Id { get; set; }
    public virtual IEnumerable<Sample> Samples { get; set; }
    [NotMapped]
    public decimal Price
    {
        get { return Samples.OrderByDescending(x => x.TimeStamp).First().Price; }
    }
}

public class Sample
{
    public int Id {get; set;}
    public decimal Price { get; set; }
    [Timestamp]
    public byte[] TimeStamp {get; set;}
}

如果它不是代码优先的,那么为你构建的EF类是部分类,所以你可以很容易地扩展它。