C# 获取产品和类别的ViewModel
我正在开发一个电子商务网站,我使用三个表格来管理产品和类别 我需要一个或多个带有实体框架的linq查询,以获得母类别、子类别和相关产品的列表 有一个类别表,如: 身份证 名猫 父ID 有一个products表,如: 身份证 名称 居住 信息等 有一个产品类别表,如: 身份证 类别 产品ID 排序器 这是我的viewmodelC# 获取产品和类别的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
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();