我在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; }
}