私はしばらくこれをいじっていて、それを手に入れることができません。私はLinq、C#、およびこれらのLambdaのものに不慣れです。
私がやりたいのは、各エンティティの2つのプロパティに従ってエンティティをグループ化することです。これはメッセージエンティティです:
Message
{
int UserId; //The user generating the message
int UserIdTo; //The receiver of the message
|...| // Other stuff
}
したがって、これらのUserId = 5、UserIdTo=6とUserId=6、UserIdTo=5が同じグループに含まれるようにする必要があります。
これが私のスタートです:
var groupList = (from m in db.Messages
where m.UserId == userId || m.UserIdTo == userId
join u in db.Users on m.UserId equals u.UserId
join w in db.Users on m.UserIdTo equals w.UserId
orderby m.MessageTimestamp descending
select new DomMessage
{
MessageId = m.MessageId,
MessageContent = m.MessageContent,
MessageTimestamp = m.MessageTimestamp,
UserId = m.UserId,
UserIdTo = m.UserIdTo,
ScreenName = u.ScreenName,
ScreenName2 = w.ScreenName
}).GroupBy(m=>m.UserId == userId)
.ToList();
これはUserIdによるグループ化の最初のビットを実行しますが、結果のグループのUserId値がUserIdToと等しくなるようにこれを拡張しようとして立ち往生していますが、他の場所でそれをこのグループに追加しますか?
編集:私はそれでやらなければならない他のことがあるので、私はリストに行くために結果が必要です...
ありがとう!