ef中關係對映也是乙個很關鍵的內容,關係對映和屬性對映一樣,也是在onmodelcreating中配置對映。ef中的關係對映有如下三種:
one-to-many relationship(一對多)
many-to-many relationship(多對多)
one-to-one relationship(一對一)
我們今天先講解one-to-many relationship(一對一關係)
零、建立所需類
public
abstract
class
base
public
datetime createtime
public
datetime modifiedtime
}
public
class
customer
:base
public
string email
public
virtual icollection orders
}public
class
order
:base
public
int price
public
int coustomerid
public
virtual
customer customer
}
一、one-to-many relationship
在編寫**之前,我們先分析一下客戶和訂單的關係。乙個客戶可以有多個訂單,但乙個訂單只能屬於乙個客戶,所以我們用到了ef中的hasrequired,乙個客戶又存在多個訂單,因此也使用到了withmany,同時order表中有customerid作為外來鍵,因此我們用到了hasforeignkey。根據我們的分析,編寫**如下:
public
class
customermap
:entitytypeconfiguration
}public
class
ordermap
:entitytypeconfiguration
}
protected
override
void
onmodelcreating
(dbmodelbuilder modelbuilder)
base
.onmodelcreating
(modelbuilder)
;}
注1:在實際專案中需要編寫很多的實體類,如果將所有實體類的對映直接寫在onmodelcreating中會造成**臃腫,不易維護,因此我們在這裡將每個類的對映寫在對應的對映檔案中,最後再將每個類的對映類註冊到onmodelcreating中
注2:上述**和描述是從客戶的方向連編寫的關係對映,如果以訂單的角度來編寫關係對映的話,只需刪掉customermap中的關係配置,在ordermap中增加關係配置部分修改如下:
hasrequired
(p =
> p.customer)
.withmany
(p =
> p.orders)
.hasforeignkey
(p =
> p.coustomerid)
.willcascadeondelete
(false
);
執行控制台**後,我們將在資料庫看到表和表關係都被建立了:
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 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...