簡體   English   中英

SQLite EntityFramework多對多Db首先

[英]SQLite EntityFramework Many to Many Db First

我有三個SQLite表:

  1. 具有兩列的類別:Id(PK),名稱
  2. 具有四列的元素:Id(PK),名稱,描述,ImgUrl,
  3. 具有兩列的ElementsCategories:ElementId(FK),CategoryId(FK)

** PK =主鍵,FK =外鍵

我創建了ADO.NET模型,並希望從數據庫中獲取所有類別。 我的類別類如下所示:

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

    public virtual ICollection<Element> Elements{ get; set; }
}

我創建了函數:

public List<Category> GetCategories()
{
    List<Category> categories;

    using (var db = new MyDb())
    {
        categories= db.Categories.Select(p => new Category
        {
            Id = p.Id,
            Name = p.Name,
            Elements = ????
        }).ToList();
    }

    return categories;
}

我無法獲得屬於類別的元素列表。 我只能從ElementsCategories表中獲取元素列表。 如何在Category對象的Elements字段中設置Elements列表?

根據您的描述,您已將聯結表( ElementsCategories )映射為一個實體,在這種情況下,查詢將如下所示:

public List<Category> GetCategories()
{
    List<Category> categories;

    using (var db = new MyDb())
    {
        categories= db.Categories.Select(p => new Category
        {
            Id = p.Id,
            Name = p.Name,
            Elements = p.ElementsCategories.Select(ec=>ec.Element)
        }).ToList();
    }

    return categories;
}

現在,如果“ Category是實體類型,則此方法將不起作用。 我假設您顯示的Category類是DTO

暫無
暫無

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

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