1)对于Entity的支持相对来说比较好,自动生成的实体如果以Entity为基类,可以挂接属性改变事件,这个非常有用,但如果生成的实体以ComplexObject为基类,则没有这个好处;
2)ComplextObject对于服务端得实体要求不是很严,不像要生成Entity为基类的实体那样,不能在字典中含有实体,字典中的类型只能是基本类型;
3)在服务中如果要暴露以Entity为基类的实体,必须有一个不带Invoke的标签的查询方法,否则,系统会将暴露该实体集合的方法之一看成是这样的方面,如果你的实体中有其它的实体,会报编译错误。(很是奇怪的规则,都被我测出来了)
3)要生成以Entity为基类的实体,必须有Key标签的属性。
微软无时不刻在想人们用他们的AEF,因为Entity为基类的和AEF配合相当的好,微软有一套处理方法。其实ComplexObject也实现了INotifyPropertyChanged接口,但我很奇怪,为什么微软要将CoplexObject的PropertyChanged属性变为保护的呢?微软不厚道的说。
实体的PropertyChanged这个事件其实很有用处的,如果有这事件,很多UI的事件处理就可以转换成对这个事件的处理(比如连动逻辑),更有利于MVVM模式的封装与应用。
本文深入分析了在服务端使用Entity和ComplexObject作为实体基类的区别,包括生成实体的方法、属性事件处理、以及与自动化代码生成框架AEF的配合。同时指出了一些奇特的规则和限制,如Entity类必须带有Key标签属性,以及在服务中暴露Entity类的特定要求。此外,文章还讨论了ComplexObject中PropertyChanged属性被设为保护的原因及其在MVVM模式中的潜在用途。

被折叠的 条评论
为什么被折叠?



