首先使用OnPropertyChanged和实体框架代码

时间:2012-06-20 05:08:16

标签: c#-4.0 entity-framework-4.1

我首先使用C#2010实体框架代码 如果我有这样的课程

partial class test    
{
        public double value1;
        public double value2;
        public double value3;
        public double totals;
}

由代码生成的

我怎样才能创建到计算总计的部分类

partial class test    
{
        public double totals { get  { return value1 + value2 + value3; }    }

1 - 您知道更改生成的类是不切实际的。 2 - 无法部分定义属性总计。 3 - 使用元数据类不会更新总计直到savechanges。

我很感激如果有人能定义我如何实现OnpropertyChanged并用于解决这个问题

谢谢

1 个答案:

答案 0 :(得分:0)

第二节课中的属性缺少“get”关键字:

partial class test    
{
        public double totals {  
            get { return value1 + value2 + value3; }
        }
}

或者,您可以定义Total()方法。

据我所知(“如何创建部分类到计算总计”),您不需要使用OnPropertyChanged,因为总计属性/方法每次都会使用新值运行计算总计。您可以从原始类中删除该字段,因为它是一个计算,实际上不应存储。

如果必须实际更新数据库中的总值,则可以按照建议使用OnPropertyChanged部分方法。您需要使用属性来调用新方法:

partial class test
{
    public double Value1
    {
        get { return value1; }
        set
        {
            value1 = value;
            Onvalue1Changed(value);
        }
    }

    partial void Onvalue1Changed(double value)
    {
        UpdateTotals();
    }

    private void UpdateTotals()
    {
        totals = value1 + value2 + value3;
    }
}

您应该将原始字段设为私有,并且仅通过该属性提供公共访问权限。这不仅是更好的代码设计,还允许您实现所需的功能。

当然,您可以遵循其他模式,但这应该可以让您开始。