EF4 1之基礎(實現Code First)

2022-05-24 04:42:07 字數 1379 閱讀 3109

code first:顧名思義:就是通過**生成資料庫----通過類生成資料庫中對應的表:

首先定義兩個類(就是建模的過程):

1

public

class

order24

5public

string ordercode 67

public

string custormname 89

public icollectionorderdetails

10 }

1

public

class

orderdetail24

public

int orderid

5public

decimal cost

6public order order

7 }

主要通過 dbcontext實現的,所以要定義乙個繼承dbcontext的基類

public

class

dbentities:dbcontext

//set/get:代表是可讀寫的

public dbsetorderdetails

static

dbentities()

}

重要講解的是這個靜態建構函式:相當於對於整個應用程式域建立了乙個標準,當初始化 dbcontext的時候就會通過呼叫database 的初始化的方法 setinitiallizer方法進行檢查現在的模型和資料庫的架構是否相同,如果不相同 就通過引數

new dropcreatedatabaseifmodelchanges() 刪除資料庫然後新建。

這時可能大家就會問了,內部是通過什麼進行檢查模型和資料庫的架構是否相同的呢?

如果大家注意的話,就會發現,當我們生成資料庫的時候會發現,生成我們定義的資料庫表的同時頁生成了乙個 名字為edmmetadata,而且他的裡面一面只有兩個乙個字段(乙個是id,另乙個就是modelhash),這個modelhash很重要:是通過模型生成的對應的hash值,當初始化的時候就會 先對當前模型生成對應的 hash 然後和這個字段進行比對,如果相同就不刪除重建,如果不同就刪除重建。

表中有一條資料(model屬性 對 針對 資料庫 的 架構  生成 的二進位制資料,,每次對資料庫進行操作的時候都會 對現有的 **生成相應的  二進位制資料 ,然後和  原來記錄的資料 進行比對,如果不同,則刪除資料庫重建。)

EF4 1中詭異的GUID為空問題

在用ef4.1過程中發現了乙個非常詭異的guid為空問題,不說廢話,直接看問題吧 測試表userinfo sql server 2008 r2 這裡是建表sql語句,供有興趣朋友測試 table dbo userinfo id int identity 1 1 not null,userid uni...

EF4 1 企業架構模式 自動對映資料表

在講解之前,先來看看解決方案的架構 1 在nop.core下的domain裡建立乙個實體category using system.data.entity.modelconfiguration using nop.core.domain.catalog 3 在nop.data下建ef上下文介面idb...

基於EF4 1的異構資料庫訪問元件(三)

基於ef4.1的異構資料庫訪問元件 二 中已完成了該元件的核心部分 接下來,向大家介紹一下第一篇所說的,給上層提供統一的持久資料介面。irepository就是需要提供給上層的統一資料持久介面,這裡大家可以找到很多的例子,不多說,直接上類圖 上圖中有以下幾個主要部分 關於iunitofwork與ir...