我有三个SQLite表:
** PK =主键,FK =外键
我创建了ADO.NET模型,我想从数据库中获取所有类别。我的Category类看起来像这样:
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 to Elements字段列表?
答案 0 :(得分:0)
根据您描述的内容,您已将联结表(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。