1、在使用ORM框架时候,往往都会遇到一个较为繁琐的事情就是字符串的拼接问题,一般情况下查询SQL Server数据库SQL语句主要包含一下三种类型。
public const string entity = "code,pcode,_name,serve_id,ip_address,dead_drive,";
public const string atentity = "@code,@pcode,@_name,@serve_id,@ip_address,@dead_drive,";
public const string upentity = "code=@code,pcode=@pcode,_name=@_name,serve_id=@serve_id,ip_address=@ip_address,dead_drive=@dead_drive,";
2、前提创建好了实体类,调用以下方法拼接字符。
public class splicing<T> where T:class { public string propertyName() { System.Reflection.PropertyInfo[] pi = typeof(T).GetProperties(); if (pi == null) { return null; } string reStr = ""; foreach (var item in pi) { reStr += item.Name + ","; } return reStr; } public string propertyAtName() { System.Reflection.PropertyInfo[] pi = typeof(T).GetProperties(); if (pi == null) { return null; } string reStr = ""; foreach (var item in pi) { reStr += "@" + item.Name + ","; } return reStr; } public string propertyEqualsName() { System.Reflection.PropertyInfo[] pi = typeof(T).GetProperties(); if (pi == null) { return null; } string reStr = ""; foreach (var item in pi) { reStr += item.Name + "=@" + item.Name + ","; } return reStr; } }
public class sd_test_item { /// <summary> /// 大项目名称 /// </summary> public string big_name { get; set; } /// <summary> /// 子项目标识 /// </summary> public string item_id { get; set; } /// <summary> /// 描述 /// </summary> public string describe { get; set; } /// <summary> /// 测试模式 /// </summary> public string test_model { get; set; } /// <summary> /// 结果数据点 /// </summary> public string result_data { get; set; } /// <summary> /// 设定值数据点 /// </summary> public string set_point { get; set; } /// <summary> /// 上限数据点 /// </summary> public string upper_limit { get; set; } /// <summary> /// 下限数据点 /// </summary> public string lower_limit { get; set; } /// <summary> /// 测试值数据点 /// </summary> public string test_value { get; set; } }
static void Main(string[] args) { splicing<sd_test_item> SBI = new splicing<sd_test_item>(); Console.WriteLine(SBI.propertyName()); Console.WriteLine(SBI.propertyAtName()); Console.WriteLine(SBI.propertyEqualsName()); Console.Read(); }