0

2 つのエンティティがあるとします。

Physician
Credentials

また、ジョーンズ博士が MD、DO、MPH を資格として持つことができるように、医師は多くの資格を持つことができます。そのため、資格情報を単一の文字列に連結する Linq を介してレポートを生成する必要があります。例えば:

from p in Physicians
select
{
   p.Name
   p.Credentials (??? <- concatenated list of all credentials ?????)
}

" p.Credentials.Aggregate((a,b) => a.Abrev + ',' + b.Abrev)" を使ってみましたが、うまくいきませんでしたが、構文が正しいかどうか確信が持てません。

4

1 に答える 1

0

うーん....私はそれをテストしていませんが、あなたは試すことができます:

from p in Physicians
select
{
   p.Name,
   String.Join(",", p.Credentials.Select<Credentials, string>(c=>c.Abrev).ToArray())
}

Selectに入ると、xはクレデンシャルではなくクレデンシャルでなければならないと思います...

編集

オブジェクトをメモリに移動する必要があります。選択を行う前にToList()を追加してみてください

from p in Physicians.Include("Credentials").ToList()
select new
{
    p.Name,
    Credentials = String.Join(",", p.Credentials.Select<Credentials, string>(c=>c.Abrev).ToArray())
}
于 2010-08-20T13:52:22.830 に答える