C# 获取产品和类别的ViewModel

C# 获取产品和类别的ViewModel,c#,asp.net-mvc,entity-framework,linq-to-entities,C#,Asp.net Mvc,Entity Framework,Linq To Entities,我正在开发一个电子商务网站,我使用三个表格来管理产品和类别 我需要一个或多个带有实体框架的linq查询,以获得母类别、子类别和相关产品的列表 有一个类别表,如: 身份证 名猫 父ID 有一个products表,如: 身份证 名称 居住 信息等 有一个产品类别表,如: 身份证 类别 产品ID 排序器 这是我的viewmodel public class CatViewModel { public int IdCat { get; set; } public

我正在开发一个电子商务网站,我使用三个表格来管理产品和类别

我需要一个或多个带有实体框架的linq查询,以获得母类别、子类别和相关产品的列表

有一个类别表,如:

身份证 名猫 父ID

有一个products表,如:

身份证 名称 居住 信息等

有一个产品类别表,如:

身份证 类别 产品ID 排序器

这是我的viewmodel

public class CatViewModel
    {
        public int IdCat { get; set; }
        public string NameCat { get; set; }
        public int ParentId { get; set; }
        public List<CatViewModel> Children { get; set; }
        public List<Product> Products { get; set; }

    }
公共类CatViewModel
{
公共int IdCat{get;set;}
公共字符串NameCat{get;set;}
public int ParentId{get;set;}
公共列表子项{get;set;}
公共列表产品{get;set;}
}

显然,每个父类别都必须有其所有子类别的完整产品列表

您走上了正确的道路。在使用此CatViewModel返回视图的方法中,可以执行以下操作:

var mainObject = Context.Category.FirstOrDefault(x => x.IdCat == "YOUR PARAMETER OF ID HERE");
var viewModel = new CatViewModel
{
   IdCat = mainObject.IdCat,
   NameCat = mainObject.NameCat,
   ParentId = mainObject.ParentId,
   Children = Context.Children(query here).ToList(),
   Products = Context.Products(query here).ToList()
};
解决方案2:

您可以首先创建:

var listChildern = Context.Children(query here).ToList();
var listProducts = Context.Products(query here).ToList();
然后返回您填充的viewModel,如下所示:

var mainObject = Context.Category.FirstOrDefault(x => x.IdCat == "YOUR PARAMETER OF ID HERE");
var viewModel = new CatViewModel
{
   IdCat = mainObject.IdCat,
   NameCat = mainObject.NameCat,
   ParentId = mainObject.ParentId,
   Children = listChildern ,
   Products = listProducts 
};
我有三张桌子。 我需要一个CatViewModel列表类型模型,我尝试了以下方法:

var cats = db.Cats.AsEnumerable() // <-- Force full execution (loading) of the above 
.Where(e => e.ParentId == null) // <-- then apply the root filter 
.ToList(); 

var myList = cats.Select(c => new CatViewModel {
 IdCat = c.IdCat, 
NameCat = c.Nomecat, 
Children = c.Children, 
Products = ??? 
}).ToList();
var cats=db.cats.AsEnumerable()//e.ParentId==null)//新的CatViewModel{
IdCat=c.IdCat,
名称猫=c.名称猫,
孩子们,
产品=???
}).ToList();

我有三张桌子。我需要一个CatViewModel列表类型模型,我尝试了以下方法:var cats=db.cats.AsEnumerable()//e.ParentId==null)//new CatViewModel{IdCat=c.IdCat,NameCat=c.Nomecat_it,Children=c.Children,Products=???}).ToList();