日期:2014-05-20  浏览次数:20915 次

linq to entity如何给一个对象整体赋值
我使用linq to entity 更新记录时,每次都要先查找出记录,然后一个字段一个字段的修改,字段多了很麻烦,我设想有没有什么方法可以直接复制一个对象到另一个对象的?尝试了一下,代码如下:

protected void update(mytable mytable)
    {
        Entities db = new Entities();
        mytable mytable1 = (from p in db.mytables where p.UserID == mytable.UserID select p).FirstOrDefault();
        mytable1 = mytable;
        db.SaveChanges();
        db.Dispose();  
    }

我知道上面这个有错误,mytable是引用类型,无法真正赋值成功。想问一个各位大神有没有什么方法能达到要求?  本人新学linq~

------解决方案--------------------
实现IClone啊
------解决方案--------------------
反射属性赋值。。。。这跟深复制没有本质区别啊,唯一的区别就是Clone是返回一个全新的Copy对象,而你要求的效果是我传递一个对象进去,方法将这个对象进行复制赋值
------解决方案--------------------

  var query = db.PARA_COMPANYS.Where(p => p.ID == intid);
 var target = query.FirstOrDefault<PARA_COMPANYS>();
                      target.COMPANY_CODE = COMPANY_CODE_tb.Text;
                      target.COMPANY_NAME = COMPANY_NAME_tb.Text;//后面可继续添加需要更改列
 db.SaveChanges();//更新数据


不知道能看明白不?不知道我理解的对不对