实体框架 - 属性设置器中的自定义逻辑

时间:2014-05-30 19:42:57

标签: c# entity-framework properties setter

使用EF,Code First。在我的班上,我有物业数量,价格和金额。在前两个属性的setter中,我想添加逻辑来计算金额。这工作正常,但是当我下次加载实体,并且Entity Framework使用数据库值填充属性时,也会实现此自定义逻辑 - 这并不好。 您认为只有在用户实际更改值而不是在对象初始化期间才实现自定义逻辑?

2 个答案:

答案 0 :(得分:1)

使用3个属性创建ViewModel类

  1. 数量{得到;集}

  2. 价格{得到;集}

  3. 金额{获得;}

  4. 使用INotifyPropertyChanged通知属性中的更改。

    public int Quantity
    {
         get { return quantity; }
         set
         {
            quantity= value;
            NotifyPropertyChanged("Quantity");
            NotifyPropertyChanged("Amount");
         }
     }
    
    public int Price
    {
         get { return price; }
         set
         {
             price= value;
             NotifyPropertyChanged("Price");
             NotifyPropertyChanged("Amount");
         }
    }
    
    public long Amount
    {
        get { return (Amount*Price); }
    }
    

    更改任何财产,即数量或价格,金额将自动更新为NotifyPropertyChanged

    更新属性逻辑可以用模型类

    编写

答案 1 :(得分:0)

尝试在控制器操作中实现此逻辑。向我们展示一些代码 - 更容易找出你想要添加的逻辑类型。