欢迎来到天天文库
浏览记录
ID:46876601
大小:69.50 KB
页数:13页
时间:2019-11-28
《实体类基础类》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实体类基础类//////实体类基础类/////[System・SerializableAttribute()]publicabstractclassEntityBsse:INotifyPropertyChanged,ICloneable,PWMIS・Common.IEntity{protectedinternalstaticDictionaryStringFieldSize=newDictionary();protectedinternalst
2、aticintGetStringFieldSize(stringtableName,stringfieldName){stringkey=string.Format(z,{0}_{l}z/,tableName,fieldName);if(StringFieldSize.ContainsKey(key))returnStringFieldSize[key]:elsereturn255;}protectedinternalintGetStringFieldSize(stringfieldName){returnGetStringFi
3、eldSize(this・TableName,fieldName);}privatePWMIS・Common.EntityMapTypeentityMap=PWMIS・Common・EntityMapType・Table;//////实体类的映射类型///publicPWMIS.Common.EntityMapTypeEntityMapget{return_entityMap;}protectedinternalset{_entityMap二value;}//[NonSerialized()
4、]privatestring[]names;//////属性字段名列表///publicvirtualstring[]PropertyNames{get{if(names==null){this.SetFieldNames();changedlist二newbool[names.Length];}returnnames;}protectedinternalset{names二value;changedlist二newbool[names.Length];//////设置实体
5、类的对应的字段名称数组///新版本必须实现这个细节,为了兼容性,这里不作为抽象方法///〈/summary〉protectedinternalvirtualvoidSetFieldNames()//this.names二names;}//[NonSerialized()]privateobject[]values://////属性值列表///publicvirtualobject[]PropertyValuesget{if(values二二null){values二newobject[Pro
6、pertyNames・Length];}returnvalues;}protectedinternalset{values二value;}//////设置所有属性的值///〈/summary〉///〈/param>publicvoidSetPropertyValues(object[]values){if(values・Length!二PropertyNames.Length)thrownewException(,z要设置的值数组大小跟属性名数量不一致。〃);Proper
7、tyValues二values;privatebool[]changedlist://////重置属性值的修改状态///protectedinternalvoidResetChanges(){ResetChanges(false);//////重置实体类全部属性的修改标记。注意,EntityQuery将根据该标记决定更新哪些字段到数据库,///它只更新标记为已经修改的实体类属性//////p
8、ublicvoidResetChanges(boolflag)if(changedlist!二null)for(inti=0;i///属性值被改变的属
此文档下载收益归作者所有