EFCodeFirst級聯刪除

2021-08-08 19:29:22 字數 754 閱讀 1254

預設情況下codefirst會在外鍵約束中設定 刪除規則 為級聯(不會預設設定 更新規則 為級聯)

當僅定義了導航屬性如

public virtual manager manager

而沒有顯示定義外來鍵如

public int managerid

codefirst不會設定 刪除規則 為級聯

在顯示定義外來鍵屬性的情況下,級聯刪除的關閉,可以通過fluent api進行

modelbuilder.entity().hasrequired(m => m.manager).withmany(n => n.departments).hasforeignkey(m => m.managerid).willcascadeondelete(false);

codefirst預設開啟級聯刪除,考慮到ef中的級聯刪除並不常用,所以可以在onmodelcreating方法中使用fluent api關掉所有主外來鍵關係的級聯刪除

modelbuilder.conventions.remove();

如果需要再使用.willcascadeondelete(true) 單獨開啟某個主外來鍵的級聯刪除

codefirst中,預設生成的資料表中外鍵字段不允許null值,這樣,就不能通過賦外來鍵字段為null值來解除關聯關係,通過fluentapi,可以修改外來鍵字段為允許null值

modelbuilder.entity().hasoptional(m => m.manager).withmany(n => n.departments);

oracle 級聯刪除

1 查詢外來鍵及父表 select a.constraint name 外鍵名,a.table name 子表,b.table name 父表 from user constraints a,user constraints b where a.constraint type r and b.con...

Hibernate 級聯刪除

在一對多的關係對映中 在一的一方配置檔案中將會配置set節點資訊 hbm.xml配置檔案中set節點的屬性 lazy 預設是true 即使用延遲載入,false表示即時載入 order by 一的一方set集合內多的一方實體集合的排序方式 預設是主鍵排序 但可以更改 cascade 是否使用級聯操作...

oracle級聯刪除

oracle中使用on delete cascade和on delete set null來建立外來鍵 其面我們介紹了建立外來鍵約束時如果使用oracle預設的建立方式,在刪除被參照的資料時,將無法被刪除,這一點在oracle9i中給了我們更多靈活的選擇,我們可是使用on delete cascad...