C# 忽略复杂类型的一个属性

C# 忽略复杂类型的一个属性,c#,entity-framework,ef-code-first,entity-framework-6,C#,Entity Framework,Ef Code First,Entity Framework 6,我想忽略一个复杂类型的属性,以便映射到FinalTotal是计算字段的数据库。实体框架表示它是不允许的,并且它必须是一个属性:( 公共类销售 { 公共int Id{get;set;} public DateTime DateSale{get;set;} 公共金额{get;set;} } 公共类金额 { 公共十进制小计{get;set;} 公共十进制税{get;set;} 公共十进制最终数{get;set;} } 公共类SaleMap:EntityTypeConfiguration { 公共地图(

我想忽略一个复杂类型的属性,以便映射到FinalTotal是计算字段的数据库。实体框架表示它是不允许的,并且它必须是一个属性:(

公共类销售
{
公共int Id{get;set;}
public DateTime DateSale{get;set;}
公共金额{get;set;}
}
公共类金额
{
公共十进制小计{get;set;}
公共十进制税{get;set;}
公共十进制最终数{get;set;}
}
公共类SaleMap:EntityTypeConfiguration
{
公共地图()
{
忽略(s=>s.Amounts.FinalTotal);
}
}
公共类数量映射:EntityTypeConfiguration
{
公共金额
{
忽略(a=>a.FinalTotal);
}
}

< /代码> 如果一个属性没有设置器,它将不被映射到一个数据库列。如果它是一个计算字段,你可以让它只有一个计算的吸气剂。

@ rkybon。如果这已经解决了你的问题,考虑接受答案,它对将来的访问者是有帮助的。“约翰巴拉萨做了:”谢谢你的建议。
public class Sale
{
     public int      Id { get; set; }
     public DateTime DateSale { get; set; }
     public Amounts  Amounts { get; set; }
}

public class Amounts
{
     public decimal Subtotal { get; set; }
     public decimal Tax { get; set; }
     public decimal FinalTotal { get; set; }
}

public class SaleMap : EntityTypeConfiguration<Sale>
{
     public SaleMap()
     {
          Ignore(s => s.Amounts.FinalTotal);
     }
}
public class AmountsMap : EntityTypeConfiguration<Amounts>
{
     public AmountsMap()
     {
          Ignore(a => a.FinalTotal);
     }
}