簡體   English   中英

EF7中的多對多關系-選擇查詢以獲取包含相關數據的列表

[英]Many-to-Many Relationships in EF7 - Select query for a list including related data

我正在建立一個在內容->類別表上具有以下多對多關系的博客。 我使用以下代碼在EF7中生成表:

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Categorization> Categorization { get; set; }
}

public class Categorization
{
    public int ContentId { get; set; }
    public Content Content { get; set; }

    public int CategoryId { get; set; }
    public Category Category { get; set; }
}

public class Content
{
    [Key]
    public int Id { get; set; }
    public string Title { get; set; }
    public string Excerpt { get; set; }
    public string Body { get; set; }

    ...

    public virtual ICollection<Categorization> Categorization { get; set; }
}

但是,當我嘗試加載類別列表時,包括如下所示的與EF7查詢相關的內容,我收到了錯誤消息。

categories = await _db.Categories
                      .Include(c => c.Categorization)
                      .ThenInclude(c => c.Content)
                      .OrderByDescending(c => c.Categorization.Count)
                      .ToListAsync();

這是調用此方法時得到的錯誤頁面。

處理請求時,數據庫操作失敗。

AggregateException:發生一個或多個錯誤。 AggregateException:發生一個或多個錯誤。 AggregateException:發生一個或多個錯誤。 AggregateException:發生一個或多個錯誤。 SqlException:無效的列名稱'Id'。 對於ApplicationDbContext Scaffold,有待處理的模型更改,這些更改將進行新的遷移,並從命令行將其應用於數據庫:

 dnx ef migrations add [migration name] dnx ef database update 

有趣的注意:當我刪除行時

 .Include(c => c.Categorization).ThenInclude(c => c.Content)

它有時會正常工作,就像在加載分類中一樣,但是這種情況始終不會發生,有時分類不會加載,並且在生成的枚舉中的每個Category類中,我對分類的引用都為空。

錯誤消息說明了一切。 SqlException:無效的列名稱'Id'

您的數據庫與項目上的模型不同。 如果啟用了數據庫遷移,請運行以下命令

dnx ef migrations add [migration name] 
dnx ef database update

如果您不想使用數據庫遷移,則必須更新數據庫上的模型以匹配您的模型。

暫無
暫無

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

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