首页 > 代码库 > 特性与反射形成sql语句 一
特性与反射形成sql语句 一
最近需要使用sql语句查询数据库 但是不想每次都写数据库读写所以查了下反射
就想使用反射出来某个实体的所有属性,然后根据属性查询并赋值
首先,需要一个实体类才能反射出数据库对应的字段,
但是开始写属性的时候,我看见特性蛮好用的,可以实现切面编程.
我也查了特性,但是网上这方面资料不多,大多都是介绍,只能自己慢慢摸索了.
[Model.Context.SelectContext] public class Entity { public int ID { get; set; } public string Name { get; set; } }弄一个实体类,设置一个特性
Context.SelectContext可以表示可以用来查询数据
接下来定义SQLHelp类查询
<span style="white-space:pre"> </span>/// <summary> /// 查询集合 /// </summary> /// <param name="T">查询的实体 new()</param> /// <param name="sql">sql语句</param> /// <param name="result">生产实体执行的操作</param> /// <param name="param">可变参数</param> /// <returns>返回集合</returns> public static IEnumerable<T> SelectReader<T>(string sql, Func<System.Data.Common.DbDataReader, T> result, params System.Data.Common.DbParameter[] param) where T : class { using (SqlConnection con = new SqlConnection(connString)) { SqlCommand cmd = new SqlCommand(sql, con); cmd.Connection.Open(); if (param != null && param.Length > 0) cmd.Parameters.AddRange(param); SqlDataReader dr = cmd.ExecuteReader(); var list = new List<T>(); while (dr.Read()) { T t = result(dr);//产生实体类委托,根据sqlDateReader产生一个实体类 if (t != null) list.Add(t); } dr.Close(); return list; } }
一个查询方法根据sql语句来返回一个集合
下一篇写sql辅助类,用来定义一个sql操作的模板
特性与反射形成sql语句 一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。