C#在数据层过滤属性中的主键
2016-01-27 15:00
274 查看
C#使用泛型+反射做为数据层时,一个很都头疼的问题,如何让C#属性在程序里识别出哪个属性是主键,在拼接SQL时,不能把主键拼接到SQL语句里。
这个需要自定义一个属性。新建一个类文件,命名为ProsperTest.cs
在MODEL层新建一个跟表对应的属性AssetPurchase.cs类
在数据层代码中编写拼接SQL字符串代码
这个需要自定义一个属性。新建一个类文件,命名为ProsperTest.cs
public class Property : System.Attribute { public string Value { get; set; } public Property(string Value) { this.Value = Value; } }
在MODEL层新建一个跟表对应的属性AssetPurchase.cs类
[Property("PrimaryKey")] public long APId { set{ _apid=value;} get{return _apid;} }
在数据层代码中编写拼接SQL字符串代码
foreach (PropertyInfo p in pros) { //获取自定义属性 object[] objArray = p.GetCustomAttributes(false); //判断是否已获取到自定义属性Property,如果已获取objArray.length>0,在此处用来过滤主键, 拼接字符串不要把主键拼接进去在Id旁边添加属性名称“PrimaryKey” if (objArray.Length <= 0) { strSql.Append(p.Name); if (i < pros.Length - 1) strSql.Append(","); i++; } }
相关文章推荐
- C# 友元函数
- c# internal
- 以逗号分隔的字符串,剔除重复的字符
- C# 条形码识别
- c#获取当前年的周数,当前月的天数
- C#导出EXCEL的几种方法
- C# 导出数据到Excel模板中
- C#版机房重构登录(不完整版)
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- C#之委托
- c# << , >> , &, |,^
- c#中string类的方法
- 【C#】常用的一些特性
- C#学习之初步理解委托、事件、匿名方法和Lambda
- C# WinForm开发系列 - WebBrowser
- C#计算时间秒数差
- C#数组
- C# 单例模版(使用where)
- C#导出Excel,并且设置Excel单元格格式,合并单元格
- c#之加加减减的优先级