Entity Framework 小知識(一)

2022-03-05 09:44:54 字數 1504 閱讀 9988

零、ef初始化資料庫策略

上一節我們演示的是在資料庫不存在的情況下運算元據庫的方法,但是某些情況下資料庫是已經存在的(例如:對已有系統的公升級改造擴充套件、dba已經將資料庫提前建立等等)。那麼這種情況下我們該怎麼辦呢?這時我們就用到了ef資料庫初始化的三種策略。這三種策略如下:

如果資料庫不存在,則建立,存在,則不建立

database.

setinitializer

(new

createdatabaseifnotexists

<

efdbcontext

>()

);

不管資料庫是否存在,都建立

database.

setinitializer

(new

dropcreatedatabasealways

<

efdbcontext

>()

);

如果資料庫模型發生變化,更新資料庫

database.

setinitializer

(new

dropcreatedatabaseifmodelchanges

<

efdbcontext

>()

);

注:以上三種策略需要在ef上下文派生類中的建構函式中定義。

上述三種策略是定義在**中的,我們也可以將他們定義在配置檔案中,我們以第三種策略為例,在.config>

key=

"databaseinitializerfortype _2_1code.efdbcontext,_2_1code"

value

="system.data.entity.dropcreatedatabaseifmodelchanges,entityframework"

/>

>

注:databaseinitializerfortype 後面是派生類的位置(命名空間.dbcontext派生類),逗號後面是派生類所在的命名空間。

一、禁用初始化策咯

某些情況下我們不需要使用ef的資料庫初始化策略,這時我們可以在**或配置檔案中設定,如下:

database.

setinitializer

<

efdbcontext

>

(null

);

注:以**方式禁用初始化策略,也學要在ef上下文派生類中的建構函式中定義

>

key=

"databaseinitializerfortype _2_1code.efdbcontext,_2_1code"

value

="disabled"

/>

>

Entity Framework 架構簡介

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。實體框架 entitry framework 以下簡稱ef 看起來像乙個有趣的技術,更強大,比linq to sql 更先進。這兩...

entity framework 批量刪除

以前用sql寫批量刪除的時候,感覺挺利索的,簡潔地寫了 public bool delectusersuggest string addsql 然後在頁面層直接呼叫 現在用entity framework,感覺有點麻煩不能直接delete,還要先把資料查出來,以下是主要 1 先查出實體 region...

Entity Framework 動態查詢

不想多說什麼直接說 region 搜尋並分頁 ljy 傳入搜尋條件,當前頁碼,每頁的顯示的條數,資料的總數 輸出引數 三個引數,返回 商實體 搜尋條件 當前頁碼 每頁的顯示的條數 資料的總數 public iqueryable endregion 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...