EF Core導航屬性

2022-02-16 05:08:43 字數 1290 閱讀 9438

ef core導航屬性分為三種:

集合導航屬性:主表中對子表相關資料的引用

引用導航屬性:子表中對主表資料的引用

反轉導航屬性:乙個導航屬性對應的另一端的導航屬性

微軟的示例:

blog是主表,post是子表

public

class

blog

public

string url public list posts

}

public

class

post

public

string title

public

string content

public

int blogid

public

blog blog

}

在以上實體類的定義中:

blog.posts是集合導航屬性,包含子表中的關聯資料。

post.blog是引用導航屬性,包含主表中的關聯資料。

post.blog是blog.posts的反轉導航屬性,反過來也一樣。

通過子表查詢主表資料:

var post=db.posts.include("blog").first();

可以訪問到blog表的其它字段:

console.write(post.blog.url)

通過主表訪問子表資料:

var blog=db.blogs.include(b=>b.posts).first();

foreach

(var post in blog.posts)

通過引用導航屬性訪問主表資料,不需要額外定義。

通過集合導航屬性訪問子表資料,需要使用fluent api配置。重寫資料上下文的onmodelcreating方法,加入以下**:

builder.entity<

post

>

() .hasone(post => post.blog)

.withmany(bolg => blog.posts);

如果不使用fluent api進行配置,執行var blog=db.blogs.include(b=>b.posts).first();時會報資料庫語法錯誤。

7 EF Core 導航屬性配置

一 多導航屬性配型 1 設定導航屬性方式 public class post public string title public string content public user author public user contributor public class user public s...

導航屬性(外來鍵)

第一種方法 不靈活 1.乙個學生型別只能儲存乙個年級物件 乙個年級物件能儲存多個學生物件 實際開發時單向比較多 5.在年級物件類中根據年級編號來查詢年級物件 寫在if前面代表察回來值即使是空也沒問題 因為 null 6.建立學生編號的時候new 乙個 年級物件並且呼叫年級物件的id將學生物件的id傳...

EF core 學習筆記

net core 介紹 1.nuget控制台執行以下操作 install package microsoft.entityframeworkcore.sqlserver install package microsoft.entityframeworkcore.tools install packa...