var stockRoomQuery = DbQuery.Query<StockRoom>(); var regionQuery = DbQuery.Query<Region>(); var list = from sr in stockRoomQuery join r in regionQuery on sr.Code equals r.StockRoomCode select new TreeObject { Title = sr.Name, Children = stockRoomQuery.Where(sr => sr.Code == r.StockRoomCode).Select(sr => new TreeRegionObject { Title = r.Name }).ToList() };

上边这种写法中一个仓库重复出现了多次,一个仓库下有几个库区,这个仓库就会出现几次,
但是我想要的效果是下边这种效果,就是仓库不受库区影响,比如说我一号仓库下有3个库区,一号仓库出现,展开是3个库区

想要的效果是一对多,,一个仓库下边是其对应的库区,就有了下边的这种写法:
var stockRoomQuery = DbQuery.Query<StockRoom>(); var regionQuery = DbQuery.Query<Region>(); var lists = from sr in stockRoomQuery select new TreeObject { Title = sr.Name, Value = sr.Code, Children = regionQuery.Where(r => r.StockRoomCode == sr.Code).Select(r => new TreeRegionObject { Value = r.Code, Title = r.Name, }).ToList() }; return lists.ToList();

浙公网安备 33010602011771号