2011-07-14 6 views
1

ここに遅れているので、木の森が見えません。Linq2SQL経由で階層データを選択

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>への簡単な方法が必要ですが、私には見えません。

アイデア?

答えて

0

ああ、私はこれが簡単だったことは分かっていました。クエリ内のEntitySetを移入する方法について考えながら、私はこの完璧ワーキング解決策が見つかりました:

How do you cast an IEnumerable<t> or IQueryable<t> to an EntitySet<t>?

ToEntitySet()方法は、言語の一部ではない私はなぜだろうか。 hierachical 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() 
関連する問題