希望能够提取递归列表的前2个级别。
InventoryTypeId int
输入nvarchar(50)
ParentId int
public IEnumerable<inventoryTypeModel> getInventoryTypes()
{
var _type = from d in dbgpsContext.InventoryType
where d.ParentId==null
select new inventoryTypeModel
{
typeid = d.InventoryTypeId ,
type = d.Type,
subtypes=???//no sure what goes here
};
return _type.ToList();
}
答案 0 :(得分:0)
这样的事情应该是神奇的:
public IEnumerable<inventoryTypeModel> getInventoryTypes()
{
var _type = from d in dbgpsContext.InventoryType
where d.ParentId==null
select new inventoryTypeModel
{
typeid = d.InventoryTypeId ,
type = d.Type,
subtypes= from s in d
where ParentId == d.Id
select s.Type
};
return _type.ToList();
}
希望这有帮助,因为我不确切知道你的模型是如何相关的。
答案 1 :(得分:0)
这是LINQ方法链版本
public IEnumerable<inventoryTypeModel> getInventoryTypes()
{
var _type = dbgpsContext.InventoryType.Where(d=> d.ParentId == null).Select(b => new
{
Typeid = b.InventoryTypeId ,
Type = b.Type,
Subtypes = dbgpsContext.InventoryType.Where(v=> v.ParentId == b.Id).Select(c => c.Type)
}).ToList();
return _type;
}