Linq to Sql 更新之屬性遍曆法

2022-04-03 10:06:28 字數 1052 閱讀 7766

最近在學習linq to sql,於是自己做了乙個例子。但是,當用到linq to sql來更新資料的時候,我傻眼了。

wwsdatacontext db = new

wwsdatacontext();

tb_userinfor userinfor= db.tb_userinfor.first(u => u.id == 1

);userinfor.username= "

zhang li";

db.submitchanges();

wwsdatacontext db = new

wwsdatacontext();

db.tb_userinfor.attach(model);

db.submitchanges();

結果報錯,不能用。然後看到說attach(entity)方法預設呼叫attach(entity, false),要使用attach(entity, true),於是改了,但可惜,還是報錯。

然後我就想,不就是先查詢出相應的實體類,然後給各個屬性賦值嘛。那我能不能遍歷屬性呢?

propertyinfo pis = typeof

(類名).getproperties();

foreach (propertyinfo pi in

pis)

然後,結合我現有情況,造就了下面的**:

tb_userinfor sql = db.tb_userinfor.first(u => u.id ==model.id);

//獲取該型別所有屬性

propertyinfo pis = typeof

(tb_userinfor).getproperties();

//依照屬性集合,遍歷實體類的值,並賦值給datacontext例項

foreach (propertyinfo pi in

pis)

db.submitchanges();

測試,發現修改成功。這下再也不用寫一大堆屬性賦值了,不然真的會要人命啊!!!

Linq to Sql之簡單應用

1,普通方式 增刪改查 新增資料 li new linq.linq i tabledatacontext 例項化乙個表,並繫結資料 linq.i table ii new linq.i table ii.i type typetext.value ii.i fund fundtext.value l...

Linq to SQL之查詢和新增

本文以northwind資料庫中的customers和orders表為例說明linq to sql的查詢和新增是怎樣操作的。首先通過linq to sql file嚮導建立datacontext以及相應的entity class,如果不知道怎樣做請看這裡 defining data model cl...

Linq to Sql 更新資料時容易忽略的問題

越來越多的朋友喜歡用linq to sql來進行開發專案了,一般我們都會遇到crud等操作,不可否認,在查詢方面linq真的帶來很大的便利,效能方面也表現不錯,在插入操作和刪除操作中,linq的表現也還不錯,但是在更新某條記錄的時候,效能就相對比較弱了,我們一般會使用executesql等方法來執行...