C# 使用零对多关系填充数据模型
我的问题是用“子数据模型”填充数据模型 在这种情况下,我得到了许多产品。每个产品都进行了分类,但有些产品根本没有进行分类。一个产品甚至可以链接到几个类别。不知道我该怎么做。 到目前为止,我得到的是: 数据库、表结构:C# 使用零对多关系填充数据模型,c#,entity-framework,linq,C#,Entity Framework,Linq,我的问题是用“子数据模型”填充数据模型 在这种情况下,我得到了许多产品。每个产品都进行了分类,但有些产品根本没有进行分类。一个产品甚至可以链接到几个类别。不知道我该怎么做。 到目前为止,我得到的是: 数据库、表结构: tProduct ProductId int ProductName varchar(250) tCategory CategoryId int CategoryName varchar(250) tLinkProductCategory Produc
tProduct
ProductId int
ProductName varchar(250)
tCategory
CategoryId int
CategoryName varchar(250)
tLinkProductCategory
ProductId int
CategoryId int
数据模型:
public class ProductModel
{
public int ProductId;
public string ProductName
public IEnumerable<CategoryModel> Categories;
}
public class CategoryModel
{
public int CategoryId;
public string CategoryName;
}
请尝试以下查询:
from product in DataContext.tProduct
select new ProductModel()
{
ProductName = product.ProductName,
Categories = (from category in DataContext.tCategory
join linkProductCategory in DataContext.tLinkProductCategory on category.CategoryId equals linkProductCategory.CategoryId
where linkProductCategory.ProductId == product.ProductId
select category
).ToList()
};
..
select new ProductModel() {
ProductName = product.ProductName,
Categories = product.tLinkProductCategory.Select(c => new CategoryModel
{
CategoryID = c.tCategory.CategoryId,
CategoryName = c.tCategory.CategoryName
}
}
...
from product in DataContext.tProduct
select new ProductModel()
{
ProductName = product.ProductName,
Categories = (from category in DataContext.tCategory
join linkProductCategory in DataContext.tLinkProductCategory on category.CategoryId equals linkProductCategory.CategoryId
where linkProductCategory.ProductId == product.ProductId
select category
).ToList()
};