WCF RIA Service下的Entity和ComplexObject的一点区别(微软不厚道)

来源:互联网 发布:ie8 json未定义 编辑:程序博客网 时间:2024/05/01 00:03

1)对于Entity的支持相对来说比较好,自动生成的实体如果以Entity为基类,可以挂接属性改变事件,这个非常有用,但如果生成的实体以ComplexObject为基类,则没有这个好处;

2)ComplextObject对于服务端得实体要求不是很严,不像要生成Entity为基类的实体那样,不能在字典中含有实体,字典中的类型只能是基本类型;

3)在服务中如果要暴露以Entity为基类的实体,必须有一个不带Invoke的标签的查询方法,否则,系统会将暴露该实体集合的方法之一看成是这样的方面,如果你的实体中有其它的实体,会报编译错误。(很是奇怪的规则,都被我测出来了)

3)要生成以Entity为基类的实体,必须有Key标签的属性。

 

微软无时不刻在想人们用他们的AEF,因为Entity为基类的和AEF配合相当的好,微软有一套处理方法。其实ComplexObject也实现了INotifyPropertyChanged接口,但我很奇怪,为什么微软要将CoplexObject的PropertyChanged属性变为保护的呢?微软不厚道的说。

实体的PropertyChanged这个事件其实很有用处的,如果有这事件,很多UI的事件处理就可以转换成对这个事件的处理(比如连动逻辑),更有利于MVVM模式的封装与应用。

原创粉丝点击