0

私はこのような実体を持っています

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回繰り返します。

私がやろうとしているのは、1つの製品エンティティと部屋のリスト(この場合は3つのリスト)を持つ1つの製品エンティティにすべての部屋を追加することです。このようなことを試しましたが、うまくいきません。

ここで私はプロパティIDを渡します

var result = from t in Product
             where t.ProductId == propId
             group t by t.Rooms
             into g
             select g;

ヘルプやアイデアをお願いします

4

2 に答える 2

0

これはどう?

var product = Product.First(p => p.ProductId == propId);

product.Rooms = from p in Product
                from r in p.Rooms
                select r;
于 2012-07-09T17:08:23.397 に答える
0

いずれかの製品に関連付けられている部屋のリストを取得する必要がある場合は、これを試すことができます。

var query = from t in products
            select t;
var rooms = query.Aggregate(new List<Room> { }.AsEnumerable(), (i, p) => i.Union(p.rooms));

集計は SQL クエリとして実行されないことに注意してください (データベースからデータを取得する場合)。むしろ、メモリ内で実行されます。

これがご希望の結果かどうかはわかりませんが、すべての製品を組み合わせた "rooms" プロパティにある部屋のリストが表示されます。たとえば、部屋が「A」と「B」の製品があり、別の製品が「C」の場合、結果の部屋のリストには「A」、「B」、「C」が含まれます。

于 2012-07-09T17:16:35.277 に答える