【注意】大家看看小弟我这段代码能不能实现类实例的插入!【窃喜】小有成就感
【注意】大家看看我这段代码能不能实现类实例的插入!!【窃喜】小有成就感啊
上述代码是一个实体类的插入方法。引用了数据层的linq to sql实例
之前每次写插入的时候总要为类的每个属性一个一个赋值例如
如果属性很多的话要烦的要死。
现在使用了反射读取了类的所有属性。然后遍历所有属性,并调用该属性的SetValue方法,给memberInfor对象赋值。
哈哈~~
本人菜鸟~好不容易写出来的,欢迎大神们指正哈~
------解决方案--------------------
不要光看方不方便,还要看效率
------解决方案--------------------
- C# code
public void Insert() { Cormander.DataAccess.MemberInfor memberInfor = new DataAccess.MemberInfor(); System.Reflection.PropertyInfo[] properties = typeof(Cormander.DataAccess.MemberInfor).GetProperties(); foreach (System.Reflection.PropertyInfo property in properties) { property.SetValue(memberInfor, property.GetValue(this,null), null); } using (Cormander.DataAccess.CormanderDataContext cdc = new DataAccess.CormanderDataContext()) { cdc.MemberInfor.InsertOnSubmit(memberInfor); cdc.SubmitChanges(); } }
上述代码是一个实体类的插入方法。引用了数据层的linq to sql实例
之前每次写插入的时候总要为类的每个属性一个一个赋值例如
- C# code
memberInfor.Id =this.Id;
如果属性很多的话要烦的要死。
现在使用了反射读取了类的所有属性。然后遍历所有属性,并调用该属性的SetValue方法,给memberInfor对象赋值。
哈哈~~
本人菜鸟~好不容易写出来的,欢迎大神们指正哈~
------解决方案--------------------
不要光看方不方便,还要看效率
------解决方案--------------------
- C# code
明显在楼主语气中发现 楼主目前心情:☆☆☆☆☆ 当前分配分数:☆ 楼主当前状态:☆☆ 楼主意图不轨:☆☆☆☆☆ 楼主的色指数:☆☆☆☆☆
------解决方案--------------------
用反射是有效率问题的。同时,这样的写法不安全,一般都是要做一些数据处理或边界检查的,所以意义不大,当练习反射吧。。。
------解决方案--------------------
不过,总的思想是好的,能把代码精简再精简,当然前提是可读性好的话,保持这种态度下去,会有成长的