簡體   English   中英

實體框架核心關系集合為空

[英]Entity framework core relationship collection is empty

我確實做了數據庫第一種方法,我確實創建了我的數據庫。 我使用關系,我有兩個表:

users
-------------
id PK int(11)
username UNIQUE varchar(20)

rooms
-------------
id PK int(11)
name VARCHAR(30) NOT NULL
owner_id INDEX int(11) -> FK to users.id

當我做腳手架時,模型看起來有點像這樣:

User.cs:

public User()
{
    Rooms = new HashSet<Room>();
}

public int Id { get; set; }
public string Username { get; set; }
public virtual ICollection<Room> Rooms { get; set; }

Room.cs:

public int Id { get; set; }
public string Name { get; set; }
public int? OwnerId { get; set; }

public virtual User Owner { get; set; }

(OwnerId可以為空,因為系統房間沒有指定的所有者)

問題是,如果我在登錄時獲得了我的用戶對象,並且我查看了user.Rooms ,則該集合始終為空,即使數據庫有一個條目。

我知道包括修復這個,但這使我必須從數據庫加載所有房間,這是一個可怕的想法,當在程序的開始加載1000多個房間。

即使關系設置正確,為什么集合總是為空?

設置關系片與在內存上加載相關實體不同。 您可以根據需要選擇4種不同的加載機制。

  1. 渴望(包括然后包括)
  2. 明確的
  3. 延遲加載(EF Core 2.1)
  4. 選擇加載

您可以使用選擇加載來過濾必須加載哪些相關的entites。 因此,您無需加載所有相關的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM