假设一个业务类 一个实体类(sod代码生成器生成的),
发现OQL里面有CopyTo方法 试用了下 发现数据都是空;没有达到效果。 只能是暂时用老土的方法 一个个赋值,大家有没有什么好的方法?
发现OQL里面有CopyTo方法 试用了下 发现数据都是空;没有达到效果。 只能是暂时用老土的方法 一个个赋值,大家有没有什么好的方法?
AfficheInfo afficheinfo = new AfficheInfo(); { AfficheId = affiche.AfficheId, Content = affiche.Content, Title = affiche.Title, AddedDate = affiche.AddedDate }; //q.CopyTo<AfficheInfo>(afficheinfo); //这是本人想用的 一句话解决 发现好像没有执行
另外发现 QOL.ToEntity 方法的数据库连接 要是没有专门指定的话 就是默认web.config里面的最后一个配置, 也可以直接用
EntityQuery.QueryObject<T>(OQL, db)
AdoHelper db = MyDB.GetDBHelperByConnectionName(“配置名称”);
解决方案
10
可以用序列化和反序列化2个操作完成一个对象的拷贝。
序列化:
序列化:
PropertyNameValues pnValues; if (allFeilds) { pnValues = entity.GetNameValues(); } else { pnValues = entity.GetChangedValues(); } PropertyNameValuesSerializer pnvSerializer = new PropertyNameValuesSerializer(pnValues); string tmp = pnvSerializer.Serializer();
反序列化:
(new PropertyNameValuesSerializer(null)).Deserialize<Order>(tmp);
10
假设有 业务类 User和实体类UserEntity,它的属性名称和属性类型都一样,可以如下做:
User user= userEntity.CopyTo<User>(null); //or User user2 = new User(); userEntity.CopyTo<User>(user2);
User,UserEntity互换操作也是可以的。
注意CopyTo是一个扩展方法,需要先引用 PWMIS.Core.Extensions.dll,并且
using PWMIS.Core.Extensions;