首页 新闻 搜索 专区 学院

使用entity framework的更新操作??

0
[已解决问题] 解决于 2012-11-28 12:54

更新时比如tbUser 有 ID,UserName,UserPwd,UserAccount等等一共三十个字段  但我只改一个UserAccount,那更新的时候只能 先根据ID搜索一条tbuser,然后给它一赋值UserAccount属性吗?

或者一共三十个属性 ,现在需求改了, 需要修改20个,也只能这样吗?  有没智能点的开源的开源的用? 

koi的主页 koi | 初学一级 | 园豆:2
提问于:2012-11-08 15:39
< >
分享
最佳答案
0

用反射

internal static void Update<T>(T source, ref T New, params string[] ignores)
        {
            Type info = typeof(T);
            PropertyInfo[] propertys = info.GetProperties();

            foreach (PropertyInfo pi in propertys)
            {
                if (ignores.Contains(pi.Name))
                    continue;
                info.GetProperty(pi.Name).SetValue(New, pi.GetValue(source, null), null);
            }
        }

 

这样应该可以吧

奖励园豆:5
alienblog | 菜鸟二级 |园豆:332 | 2012-11-09 15:04
其他回答(4)
0

一般的方法是 会有一个update的方法 那个方法根据id , update  entity的每个属性 类似于 update tbUser set UserName='UserName' ,UserPwd='UserPwd' ,UserAccount='UserAccount' where id=@id

然后在P层有个方法是更具id获取entity ,如果改了UserAccount 只要 entity.UserAccount="newaccount";update(entity);这样就可以了。

如果还不理解  可以去下个代码生成器 看看生成好的代码就可以了。

死白的man | 园豆:2135 (老鸟四级) | 2012-11-08 16:06
0

自己封装个类不就好了。 根据提 字段数量 自动生成 相应的UPDATE 语句

Mundo Novo | 园豆:69 (初学一级) | 2012-11-08 16:19
0

我也刚接触ef,mark

ms_water | 园豆:510 (小虾三级) | 2012-11-08 17:24
0

http://www.cnblogs.com/mbailing/

我的博客中有这方面的知识,你可以看看。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-11-09 10:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册