我有这样的实体
Product Room
long productid long roomid
List<Room> rooms string roomname
String name
现在我有一个产品实体列表,除了房间列表之外还有重复的日期。 当量
Product
Id 1 Id2 Id3
Rooms = 1,A Rooms = 1,B Rooms =1,C
ABC ABC ABC
在这种情况下,我有相同的属性重复3次,因为它有3个房间。
我要做的是将所有房间添加到一个产品实体,该实体将具有一个产品实体和房间列表(在这种情况下为3个列表)。 我试过这样的东西,但它不起作用。
这里我传递了属性id
var result = from t in Product
where t.ProductId == propId
group t by t.Rooms
into g
select g;
请提供任何帮助或想法
答案 0 :(得分:0)
这个怎么样?
var product = Product.First(p => p.ProductId == propId);
product.Rooms = from p in Product
from r in p.Rooms
select r;
答案 1 :(得分:0)
如果您只需要获取与任何产品相关的房间列表,您可以试试这个:
var query = from t in products
select t;
var rooms = query.Aggregate(new List<Room> { }.AsEnumerable(), (i, p) => i.Union(p.rooms));
请注意,聚合不会作为sql查询执行(如果要从数据库中提取数据) - 相反,它将在内存中执行。
我不确定这是否是您想要的结果,但它会为您提供所有产品组合的“房间”属性中的房间列表。例如,如果您有一个产品的房间为“A”和“B”,另一个产品的房间为“C”,则产生的房间列表将包含“A”,“B”和“C”。