将实体类、匿名对象转换为SqlParameter列表
/// <summary>
/// <remarks>
/// <para>将实体类/匿名对象转换为SqlParameter列表</para>
/// <para>示例1: 实体类</para>
/// <para>EntityClass entityClass = new EntityClass(){ Id = 1 , Name="名称"}; SqlParameter[] parms = entityClass.ToSqlParameterArray()</para>
/// <para>示例2: 匿名对象</para>
/// <para>var anonymousObject = new { Id = 1 , Name="名称"}; SqlParameter[] parms = anonymousObject.ToSqlParameterArray()</para>
/// <para>注意:SqlParameter(string parameterName, object value)的参数parameterName均为实体类/匿名对象属性的小写形式的副本。</para>
/// <para>因此,对应sql参数应为小写形式,例如:insert into tbname(name) values(@name)</para>
/// </remarks>
/// </summary>
/// <param name="obj">实体类/匿名对象</param>
/// <returns>SqlParameter参数数组</returns>
public static SqlParameter[] ToSqlParameterArray<T>(this T entityClass) where T : class
{
List<SqlParameter> parms = new List<SqlParameter>();
PropertyInfo[] propertys = entityClass.GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
// 判断此属性是否有Getter
if (!pi.CanRead)
{
continue;
}
object value = pi.GetValue(entityClass);
parms.Add(new SqlParameter("@" + pi.Name.ToLower(), value));
}
return parms.ToArray();
} /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
public class EntityClass
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
} //使用示例:
//1.实体类
EntityClass ec = new EntityClass()
{
Name= "长毛象",
Age = 2
};
//SqlParameter[] parms = ec.ToSqlParameterArray();
var parms = ec.ToSqlParameterArray(); //2.匿名类
var ec = new
{
Name = "长毛象",
Age = "2"
};
//SqlParameter[] parms = ec.ToSqlParameterArray();
var parms = ec.ToSqlParameterArray();
将实体类、匿名对象转换为SqlParameter列表的更多相关文章
- 将实体类/匿名对象转换为SqlParameter列表
每次操作数据库参数化实在是太麻烦了,于是自己瞎琢磨,琢磨出下面扩展方式,能力有限,还有不足之处,请多多指教. /// <summary> /// <remarks> /// & ...
- JSON-JSON字符串转换成JSON对象、JSON对象数组、java实体类以及保存到List列表中
处理JSON字符串时,一直出错,写个样例后发现原来是没有弄清楚数据的格式问题. 实现的是 JSONString 转换成java对象 或是 list列表 实例类 News package lyx.ent ...
- 什么是“类数组对象”,在jquer中怎样将类数组对象转换为数组对象
类数组对象的定义: 所谓"类数组对象"就是一个常规的Object对象,如$("div")但它和数组对象非常相似:具备length属性, 并以0.1.2.3……等 ...
- 匿名实现类&匿名对象
学习过程中经常搞不清匿名类&匿名对象怎么用,今天就把常用的方式总结一遍. 1.创建了非匿名实现类的非匿名对象 //定义USB接口 interface USB{ void inputInofo( ...
- Python小白学习之路(五)—【类和对象】【列表】【列表相关功能】
类和对象 (简单的了解一下这个概念,初步有个印象,这个概念很重要,后面会着重讲) 类:具有相同属性和方法的对象的集合: 对象:万物皆对象: 概念很抽象(每当我看不到概念的时候,我就会通过举例来理解) ...
- 使用C#中JavaScriptSerializer类将对象转换为Json格式数据
将对象转换为json格式字符串: private JavaScriptSerializer serializer = new JavaScriptSerializer(); protected voi ...
- c#匿名类,匿名对象
何谓匿名类,其实本质和普通定义的类一样,只不过是由系统的编译器来完成的,首先举个例子. 一般情况 //声明一个类,包含贴别多的字段 public class Person() { public str ...
- springMVC List对象转换为json列表对象
@ResponseBody @RequestMapping("xxx.do") public List<POJO> getList(){ return List< ...
- .NET解析xml字符串,通过反射给实体类对象赋值,获取实体类数据列表
/// <summary> /// 解析xml字符串 转换为实体类列表数据 /// </summary> /// <param name="xmlStr&quo ...
随机推荐
- bzoj3196 二逼平衡树
题目链接 平衡树系列最后一题 坑啊 10s时间限制跑了9764ms...还是要学一学bit套主席树啦... 经典的线段树套treap...至于第一发为什么要TLE(我不会告诉你treap插入的时候忘了 ...
- css技巧-案例
点击进入:http://herry.wuhairui.cn/cssSkill/main.html
- sublime text3 批量查找替换文件夹或项目中的字符
1.点击左上角的“菜单”,在弹出的菜单中选择“打开文件夹”. 2.在文件夹上右击,选择“在文件夹中查找”选项 3.之后会软件底部会弹出对话框,分别输入要查找的内容和替换的内容,最后点击替换按钮 4.再 ...
- Golang切片的三种简单使用方式及区别
概念 切片(slice)是建立在数组之上的更方便,更灵活,更强大的数据结构.切片并不存储任何元素而只是对现有数组的引用. 三种方式及细节案例 ①定义一个切片,然后让切片去引用一个已经创建好的数组 pa ...
- oracle查询所有初始化参数(含隐含参数)
年龄大了,感觉记性不是很好了,还是重新做笔记了.最近在整理些稿子,顺便在记录下oracle查询所有初始化参数(含隐含参数): SELECT i.ksppinm name, i.ksppdesc des ...
- amqp 抓包
1. wireshark 2. tcpick -yR -r file.name
- Android图片裁剪解决方案 -- 从相册截图
在看Storage Access Framework,里面有一个加载相册图片的程序片断,可能是系统版本的问题,无法返回结果,这里找到一个适用于旧版本的方法. 在Android开发中,可以轻松调用一个I ...
- python简说(二十)操作excel
一.pip install xlrdpip install xlwtpip install xlutils 二.写excel import xlwtbook = xlwt.Workbook() #新建 ...
- 20145325张梓靖 《网络对抗技术》 MSF基础应用
20145325张梓靖 <网络对抗技术> MSF基础应用 实验内容 掌握metasploit的基本应用方式以及常用的三种攻击方式的思路 主动攻击,即对系统的攻击,不需要被攻击方配合,这里以 ...
- linux物理网卡检测命令mii-tool
mii-tool #是用于查看.管理物理的网络接口的状态,还可以配置网卡需要的协商方式. 一 ,查看网卡工作状态 mill-tool [网卡名] #查看物理网卡连接状态 -V 显示版本信息 ...