EF之增刪改查

2021-08-15 01:57:35 字數 1847 閱讀 2778

首先了解兩個個概念:資料持久化和linq表示式。

是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱;資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型、xml、二進位製流等;其實,簡單來說,就是將資料儲存到資料庫中,為什麼這麼說呢?因為持久化就不是暫時的,而儲存分為暫存和永存兩個方面,暫存指的是儲存到了計算機的記憶體中,電源關閉即丟失。而永存就是儲存到了類似資料庫裡,資料就可以反覆使用。除此以外,持久化封裝了資料訪問細節,為大多數業務邏輯提供物件導向的api。

1. 通過持久化技術可以減少訪問資料庫資料次數,增加應用程式執行速度;

2. **重用性高,能夠完成大部分資料庫操作; 

3. 鬆散耦合,使持久化不依賴於底層資料庫和上層業務邏輯實現,更換資料庫時只需修改配置檔案而不用修改**。

linq的全稱是language integrated query,中文譯成「語言整合查詢」,主要用於查詢。舉乙個簡單的例子,比如說sql語句:select username from t_user where userid = 1;

那麼我們思考一下,這句sql語句可以分為哪幾部分,他們各自的執行順序是什麼。當然有select,from,where三層,執行的順序當然是先from ,再where,在select,所以將上述sql轉成linq為:

from user in dbcontext.t_user where user.userid == 1 select user;

當然查詢有很多,具體linq查詢!

首先,我們先建立乙個上下文物件

using(var db = new entities())

userinfo user = new userinfo()

;db.userinfo.add(user);

第一種

user = new userinfo()

;db.entry(user).state = system.data.entity.entitystate.deleted;

第二種

user = new userinfo()

;//attach的實體事先不能已經在記憶體中,否則上下文會追蹤到兩個相同鍵名的實體

db.userinfo.attach(user);//將物件新增到ef管理容器中 objectstatemanager

db.userinfo.remove(user);//將物件包裝類狀態標識為刪除

以上兩種適用於根據id可以直接找到要刪除的資料,如果資料的找到比較複雜,那麼適用第三種,先查詢,後刪除。查詢我們使用linq表示式。

using (var db = new entities())

改也要分為好多種形式,第一種,可以根據id直接找到就可以直接修改,並且只修改乙個屬性

user = new userinfo()

;db.userinfo.attach(user);

db.entry(user).property(v => v.username).ismodified = true;

第二種,根據id可以直接找到,但是需要修改很多屬性

user = new userinfo()

;db.entry(user).state = system.data.entity.entitystate.modified;

第三種,先查詢再修改

using (var db = new entities())

EF 簡單 增刪改查

ef 簡單 增刪改查 一 新建models 中實體類 在類中新增特性,新增特性之前需要引用命名空間 需要引用 using system.componentmodel.dataannotations using system.componentmodel.dataannotations.schema ...

EF增刪改操作

service層刪除 刪除 public bool delete int commodityid 控制器刪除 刪除 userservice commodityservice commodityservice new commodityservice public jsonresult deletei...

unity之增刪改查

歡迎來到我們的 狗刨網,今天我們主要講的是怎麼把資料庫放在專案裡執行,實現增刪改查,這是最基礎的內容,首先我們只有掌握了這些才能夠在 專案中完成使用者的登陸和註冊。一 首先是資料的查 class program return list 二 資料的插入 public int insert string...