博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
检测空值,以及会不会出现mapping类型不一致的问题
阅读量:6757 次
发布时间:2019-06-26

本文共 3607 字,大约阅读时间需要 12 分钟。

///         /// 检测空值,以及会不会出现mapping类型不一致的问题        ///         /// 
/// /// public static void CheckHibernateMappingType
(out StringBuilder nullsb1,out StringBuilder errorsb) where T:Framework.Domain.Entity,new() { nullsb1 = new StringBuilder(); errorsb = new StringBuilder(); var ctx = Spring.Context.Support.ContextRegistry.GetContext(); var Dao = GetDao(); var mapping = ((Spring.Data.NHibernate.LocalSessionFactoryObject)ctx.GetObject("&SessionFactory")).Configuration.GetClassMapping(typeof(T)); var pmap = mapping.PropertyIterator; var tableName1 = mapping.Table.Name; var table = Dao.ExecuteDataSet(new QueryInfo() { CustomSQL = "select * from " + tableName1 }).Tables[0]; Hashtable columnsType = new Hashtable(); foreach (DataColumn col in table.Columns) { columnsType.Add(col.ColumnName, col.DataType.Name); } string primaryKey = ((NHibernate.Mapping.Column)(mapping.Key.ColumnIterator.FirstOrDefault())).Name; StringBuilder sb = new StringBuilder(); StringBuilder sb1 = new StringBuilder(); foreach (DataRow dr in table.Rows) { foreach (var item in pmap) { NHibernate.Mapping.Column c = (NHibernate.Mapping.Column)item.ColumnIterator.FirstOrDefault(); //1对多的属性如children没有对应的列 if (c != null) { string columnTypeName = columnsType[c.Name].ToString(); try { if (dr[c.Name] is DBNull) { nullsb1.Append("主键" + dr[primaryKey].ToString() + "列" + c.Name + "约定类型为:" + columnTypeName + "值为:NULL\r\n"); continue; } switch (columnTypeName) { case "String": break; case "Int16": Convert.ToInt16(dr[c.Name]); break; case "Int32": Convert.ToInt32(dr[c.Name]); break; case "Int64": Convert.ToInt64(dr[c.Name]); break; case "Decimal": Convert.ToDecimal(dr[c.Name]); break; case "DateTime": Convert.ToDateTime(dr[c.Name]); break; case "Boolean": case "bool": Convert.ToBoolean(dr[c.Name]); break; default: break; } } catch (Exception ex) { sb.Append("主键" + dr[primaryKey].ToString() + "列" + c.Name + "约定类型为:" + columnTypeName + "值为:" + dr[c.Name] + "??类型转换异常\r\n"); } } } } }

 

转载于:https://www.cnblogs.com/kexb/p/7512428.html

你可能感兴趣的文章
QQ空间抢车位刷钱方法汇总
查看>>
[LeetCode] Missing Number
查看>>
java.lang.IllegalStateException: Illegal access
查看>>
STL容器的效率比较
查看>>
Ckeditor使用总结
查看>>
人事面试100问题--巧妙应答
查看>>
【工具类】怎么进入阿里云docker仓库
查看>>
Ceres-Solver库入门
查看>>
悲惨而又丢人的创业经历:草根创业者含恨倾诉为什么失败
查看>>
理解WebKit和Chromium: WebKit, WebKit2, Chromium和Chrome介绍
查看>>
hanoi塔的递归算法
查看>>
C# 校验给定的ip地址是否合法
查看>>
lumen 登陆 注册 demo
查看>>
基于服务的并行系统的通讯方式探讨
查看>>
设计模式——观察者模式
查看>>
Python多线程 简明例子
查看>>
《地球上的星星》
查看>>
mysql数据库的主从同步,实现读写分离
查看>>
89 fcanf和fprintf
查看>>
javascript——自定义右键菜单
查看>>