ВЕР datebase схемы является то выглядеть следующим образом:LINQ, как объединить два столбца в один столбец результата запроса
и возьмите, пожалуйста, посмотрите на запрос ниже (я хочу, чтобы получить инвентарь игрока 5000 для игры с GameID 1001):
var gameID=1001;
var playerID=5000;
var q = from p in Players
join gp in GamePlays on p.PlayerID equals gp.PlayerID
join gpi in GamePlayItems on gp.GamePlayID equals gpi.GamePlayID
join it in Items on gpi.ItemID equals it.ItemID
where p.PlayerID == playerID
where it.GameID == gameID
select new
{
GamePlayID = gp.GamePlayID,
ItemName = it.ItemName,
ItemValue = gpi.ItemValue,
};
q.Dump();
результат показан ниже:
, но я не хочу, чтобы колонка GamePlayID повторялась. Я хочу получить только запись, в которой второй столбец имеет хеш-набор или список содержит «Запасы» (я хочу объединить столбцы два и три в одном столбце). как это можно достичь? например, мой результат желание:
GamePlayID Items
--------- -----
6 A List => { (ItemName1, ItemValue1), ....}
UPDATE:
по ruuning Гилада Зеленый запрос получается нечто выглядеть следующим образом: запрос:
var q = (from p in db.Players
join gp in db.GamePlays on p.PlayerID equals gp.PlayerID
join gpi in db.GamePlayItems on gp.GamePlayID equals gpi.GamePlayID
join it in db.Items on gpi.ItemID equals it.ItemID
where p.PlayerID == playerID
where it.GameID == gameID
group new
{
ItemName = it.ItemName,
ItemValue = gpi.ItemValue
}
by new
{
gp.GamePlayID,
gp.BestTimeRecord,
gp.PlayedNumber,
gp.ScoreNumber,
gp.WinNumber
}
into groups
select new { Statictics = groups.Key, Items = groups }).ToList();
но я не хочу иметь ключ в элементах ... почему это o ccurs?
UPDATE 2:
оба ответа Ивана Стоев, Гилад Зеленый правильны ...
Группа от GamePlayID? –
@ J.Steen: вы можете помочь для этого. –