//刚开始通过EF添加数据都是这样的...↓var db = new DBEntities()T_User t_userinfo = new T_User(){Type = "type1",AliasName = "alisaname1",Description = "description..."};db.T_UserGroup.Add(t_userinfo);db.SaveChanges();//这个表有几个字段就要需要一个个的赋值...//如果字段太多代码也会相应增加...开发速度也慢..//想封装起来直接调用就好了
//封装的方法... public static TEntity setNewTEntityValue(Dictionary userInfoDic) where TEntity : class { var entity = Activator.CreateInstance (); int tempInt = 0; DateTime tempDateTime = DateTime.Now; foreach (var pro in entity.GetType().GetProperties()) { //如果传来的参数中有 全部属性中的值,则开始赋值... //目的主要还是判断传来要更新的有哪些参数... if (userInfoDic.ContainsKey(pro.Name)) { switch (pro.PropertyType.Name.ToLower()) { case "int32": //pro.SetValue(entity, userInfoDic[pro.Name].ToString());//测试代码... int.TryParse(userInfoDic[pro.Name].ToString(), out tempInt); pro.SetValue(entity, tempInt); break; case "string": pro.SetValue(entity, userInfoDic[pro.Name].ToString()); break; case "datetime": //tempDateTime = DateTime.ParseExact(key.Value.ToString(), "", System.Globalization.CultureInfo.InvariantCulture); pro.SetValue(entity, tempDateTime); break; default: pro.SetValue(entity, userInfoDic[pro.Name].ToString()); break; } } } return entity; }
//调用方法 Dictionarydic = new Dictionary (); dic.Add("Type", "type1"); dic.Add("AliasName", "alisaname1"); dic.Add("Description", "description...");//我这里是添加的测试数据,本来的数据是web端传过来json,我解析出来的就和dic是一样的字典表 T_User info = CommonService.setNewTEntityValue (dic); db.T_UserGroup.Add(info); db.SaveChanges();
记录点滴...^_^