2011-11-20 62 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? –