0
你好,我有EntityFramework的問題。我有一對多的關係。實體框架不從相關的表中取數據
public class Question
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
[Required]
public DateTime AddDate { get; set; }
[Required]
public string Author { get; set; }
[Required]
public bool IsApproved { get; set; } = false;
public ICollection<Answer> Answers { get; set; }
}
和謝勝利類:
public class Answer
{
[Key]
public int Id { get; set; }
[Required]
public string Text { get; set; }
[Required]
public string FileName { get; set; }
public Question Question { get; set; }
}
如何,我們可以看到我設置這些表之間的關係。 可惜的是,當我做簡單的選擇
_context.Question.OrderByDescending(x => x.AddDate).Take(10)
答案對象始終是零。 我在MSSQL中檢查了Keys。問題表沒有任何FK給答案,但答案有FK給問題。
有人能爲我解釋我做錯了什麼嗎?爲什麼FK沒有創建? 我正在嘗試虛擬類型,但它沒有幫助。
只是一個猜測:通常你必須使屬性虛擬來啓用延遲加載,或者你必須使用急切的加載(包括加載它們時所需的相關對象), 例如在你的情況下(急於加載:) '_context.Question.OrderByDescending(x => x.AddDate).Include(x => x.Answers).Take(10)' –
FK正是它應該在的地方 - 在'many'一側。所以關係是可以的,但不會自動填充。在查詢中插入'.Include(x => x.Answers)''。參考:[加載相關實體](https://msdn.microsoft.com/en-us/data/jj574232.aspx) –