[发明专利]一种数据表与实体类的动态映射及转换方法在审
| 申请号: | 201510129831.3 | 申请日: | 2015-03-24 |
| 公开(公告)号: | CN104731911A | 公开(公告)日: | 2015-06-24 |
| 发明(设计)人: | 田尚杰 | 申请(专利权)人: | 浪潮集团有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
| 地址: | 250101 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据表 实体 动态 映射 转换 方法 | ||
1.一种数据表与实体类的动态映射及转换方法,其特征在于,其具体实现过程为:
一、构建源数据对象DataTable和目标数据对象实体间的映射关系描述字符串;
二、从源数据对象DataTable进行数据抽取;
三、把从源数据对象抽取的数据转换为目标数据对象实体。
2.根据权利要求1所述的一种数据表与实体类的动态映射及转换方法,其特征在于,所述步骤一中使用字符串类型描述映射关系的基本语法如下:
Fr[源对象列1名称] to 目标对象属性1名称, Fr[源对象列2名称] to 目标对象属性2名称,……, Fr[源对象列n名称] to 目标对象属性n名称;
其中,Fr[源对象列1名称] to 目标对象属性1名称,表示把源对象的某一列映射到目标对象的一个属性;Fr和to是固定关键词;源对象列1名称、源对象列2名称、源对象列n名称,代表源对象的某一列的列名称;目标对象属性1名称、目标对象属性2名称、目标对象属性n名称是目标对象的一个属性名称。
3.根据权利要求2所述的一种数据表与实体类的动态映射及转换方法,其特征在于,所述映射关系的具体描述语法为:
(Fr[源对象列m名称] 运算符 Fr[源对象列n名称]) to 目标对象属性名称;
其中,运算符包括“+”、“-”、“*”、“/”四种,当运算符前后的对象列的值为整数和数值类型时,使用以上四种运算符中的任何一个;当运算符前后的对象列的值为字符类型时,使用“+”运算符。
4.根据权利要求1-3任一所述的一种数据表与实体类的动态映射及转换方法,其特征在于,执行源数据对象与目标数据对象间的映射及转换时,首先要把映射关系描述字符串转换为符合Linq要求的Lambda表达式,即系统把映射关系描述字符串中的每一个Fr[源对象列名称] to 目标对象属性名称转换成一个Lambda表达式片段:
根据传入的目标对象实体的类型,动态构建目标对象实体类;当传入的目标对象实体的类型为null时,则动态构建一个dynamic类型的实体类;
当遇到关键词Fr,系统根据其后的[源对象列n名称],把其对应到列名称为“源对象列n名称”的数据上,并作为当前Lambda表达式片段的left段;
当遇到关键词to,系统根据其后的“目标对象属性名称”,通过反射的方式获取目标对象实体中“目标对象属性名称”所代表的属性,并把该属性作为当前Lambda表达式片段的right段;
系统根据Lambda表达式片段的right段所代表的目标对象属性的类型,把Lambda表达式片段的left段所代表的源对象列的值进行类型转换后,赋值给Lambda表达式片段的right段所代表的目标对象属性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮集团有限公司;,未经浪潮集团有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510129831.3/1.html,转载请声明来源钻瓜专利网。





