Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用零对多关系填充数据模型_C#_Entity Framework_Linq - Fatal编程技术网

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()
           };