实体框架计算的属性

时间:2015-07-14 10:34:41

标签: c# linq entity-framework entity-framework-6

我在EF6中有以下课程

Items
-------------
public int       ItemID
public string    ItemName
public decimal   ItemPrice
public virtual   List<ListPricesItems> ListPricesItems
public decimal   ItemDiscountedPrice (need to calculate this)

ListPrices
----------------
public int    ListID
public string ListDescription
public Date   ListValidUntilDate


ListPricesItems
-----------------
public int        LPRID
public int        ListID
public int        ItemID
public decimal    ItemDiscountedPrice

我需要做的是在Item中使用ItemDiscountedPrice执行以下操作

        [NotMapped]
        public decimal ItemDiscountedPrice
        {
            get
            {

               if(ListPricesItems.ListPrices.ListValidUntilDate > Date.Now()){

                   return ListPricesItems.ItemDiscountedPrice ?? ItemPrice;

               }

            }
        }

这可能吗?如果折扣政策仍然有效,请检查ItemDiscountedPrice是否为空,如果为空,则提供标准ItemPrice。

已更新

public partial class Items
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int ItemID { get; set; }


        public string ItemName { get; set; }


         [Column(TypeName = "money")]
        public decimal? ItemPrice { get; set; }

        public virtual ICollection<ListPricesItems> ListPricesItems { get; set; }

        [NotMapped]
        public decimal ItemDiscountedPrice 
        {
            get
            {

                return ......................

            }
        }


    }


    public partial class ListPrices
    {
        [Key]
        public int ListID { get; set; }

        public string ListDescription { get; set; }

        [Column(TypeName = "datetime2")]
        public DateTime? ListValidUntilDate { get; set; }

        public virtual ICollection<ListPricesItems> ListPricesItems { get; set; }

    }

    public partial class ListPricesItems
    {
        [Key]
        public int LPRID { get; set; }

        public int? ListID { get; set; }

        public int? ItemID { get; set; }

        [Column(TypeName = "money")]
        public decimal? ItemDiscountedPrice { get; set; }

        public virtual ListPrices ListPrices { get; set; }
    }

Here is what I get on ListPricesItems

0 个答案:

没有答案