Выберите иерархические данные через Linq2SQL - PullRequest
1 голос
/ 14 июля 2011

Уже поздно, и я не вижу леса за деревьями.

Я пытаюсь выбрать иерархические данные с помощью следующего подхода:

return
    from line in data
    group line by line.LieferscheinNr into g
    let kpf = g.First()
    select new DESSK1
    {
        K1LINK = MakeDfuePartnerID(kpf.Land, kpf.VerbandNr),
        K1LSNR = kpf.LieferscheinNr,
        K1LSDT = decimal.Parse(kpf.LieferscheinDatum.ToString("ddMMyyyy")),
        K1ILNW = kpf.IlnLieferanschrift,
        K1ILNH = kpf.IlnKunde,
        K1ILNL = kpf.IlnMandant,
        K1CPSD = 1,
        K1ILNB = kpf.IlnKunde,
        K1VSDT = decimal.Parse(kpf.LieferDatum.ToString("ddMMyyyy")),
        K1BSTN = kpf.BestellNr,

        // this is where the compiler complains
        DESSP2 = from pos in g
                 select new DESSP2
                 {
                     P2LSNR = pos.LieferscheinNr,
                     P2POSN = pos.Pos,
                     P2EAN = pos.EAN,
                     P2LMG = pos.Menge,
                     P2BMG = pos.MengeSoll
                 }
    };

Я думаю, вы видите, что я пытаюсь здесь, но это не удается, поскольку DESSP2 имеет тип System.Data.Link.EntitySet<DESSP2>, а запрос имеет тип IEnumerable<DESSP2>.

Должен быть легкий путь от IEnumerable<T> до EntitySet<T>, но я его не вижу.

Есть идеи?

1 Ответ

0 голосов
/ 14 июля 2011

Ах, я знал, что это было легко.Размышляя о том, как заполнить EntitySet в запросе, я нашел это идеально работающее решение:

Как вы преобразуете IEnumerable или IQueryable в EntitySet ?

Интересно, почему метод ToEntitySet() не является частью языка.Выглядит как обычная проблема, если вы хотите заполнить иерархические таблицы linq.

Соответствующая часть теперь выглядит так:

    DESSP2 = (from pos in g
             select new DESSP2
             {
                 P2LSNR = pos.LieferscheinNr,
                 P2POSN = pos.Pos,
                 P2EAN = pos.EAN,
                 P2LMG = pos.Menge,
                 P2BMG = pos.MengeSoll
             }).ToEntitySet()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...