2012-02-17 55 views
0

所以我在我的部分类中重写我的POCOEF节能属性,而不是基础属性

public new double PaidOvertime 
    { 
     get 
     { 
      if (!InHoures) 
      { 
       return Math.Round(base.PaidOvertime/ 7, 2); 
      } 
      else 
      { 
       return base.PaidOvertime; 
      } 
     } 
     set 
     { 
      if (!InHoures) 
      { 
       base.PaidOvertime = value * 7; 
      } 
      else 
      { 
       base.PaidOvertime = Math.Round(value, 2); 
      } 
      statsChanged(); 
     } 
    } 

事物的属性,当它来保存,EF保存该属性的值此属性。我希望EF将基本属性或私有变量的值保存在基本属性后面。

它是一种解决方法或即时消失的东西?

PS:当我说“节约”我的意思是保存到数据库

+0

您是否使用EF Code First? – 2012-02-17 17:45:45

+0

@Serge我们使用带WCF支持的ADO.NET POCO实体生成器。 – Gab 2012-02-17 18:20:53

回答

0

我希望你使用的是一些继承映射,否则它不应该在所有的工作。

一旦你在派生类中使用new,你就会告诉.NET,这是你每次使用类实例时要使用的实现。只有在将类转换为基本类型并与基本类型一起使用时才使用基本实现 - 问题在于这是否适用于EF。

只是不这样做。方法和属性声明中的关键字new只有在您使用对象控制所有代码时才应使用。否则,你永远不知道哪个实现将被调用。 EF不是你的代码。