2011-11-20 89 views
0

我正在學習EF 4的員工,真的得到了堆疊。我正在使用Code First方法,例如。擴展EF波科分類

public class Machine{ 
public int A{get;set;} 
... 
} 

我試圖實現業務邏輯以基於一個屬性(例如,B = A + 5)附加屬性和在數據網格WPF目前它。這個新屬性根本不需要存儲在數據庫中。我將如何做到這一點(例如,部分班級)?任何例子?

回答

3
public class Machine 
{ 
    public int A { get; set; } 

    [NotMapped] 
    public int B 
    { 
     get 
     { 
      return A + 5; 
     } 
    } 
} 

這應該有效。

+0

這就是偉大的列名,但我怎麼能實現的INotifyPropertyChanged的,這將在公衆詮釋被解僱一個 { GET {return a; } set { a = value; this.NotifyPropertyChanged(「A」); this.NotifyPropertyChanged(「C」); } } – Jim

+0

是的,你必須在A的setter中引發OnPropertyChanged(「B」),否則UI將不會重新計算B.我希望這是你的意思。 – LueTm

1

如果您使用的是EF 4.1,則可以使用not mapped attribute。如果您使用的是EDMX設計師,我beleive你可以刪除它分配給在模型查看器表映射

+0

我將映射到數據庫後添加標量屬性。然後我得到了一個錯誤:類型'WpfApplication4.MainWindow'上與指定綁定約束匹配的構造函數的調用引發了一個異常。'行號'3'和行位置'9 – Jim

+0

是你的實體類實現inotify? –