0

私は LINQ と Entity Framework を初めて使用します。これまでのところ、比較的単純なデータ クエリしか実行できませんでした。次のようなコードを使用して、データのクエリと結果のクラスへの格納を開始しました。

public class myData
{
    public string name { get; set; }
    public string id {get; set;}
}

 var data = (from t1 in MyContext.Table1
             from t2 in MyContext.Table2
             where t1.Id == "1"
             select new myData
             {
                 name = t1.Name,
                 id = t2.id
             }).FirstOrDefault();

多対一の関係にあるデータも取得できますか? たとえば、t1.Id を使用して多くの「データ値」が保存されている場合、このデータを同時にクエリできますか?

例えば

public class myData
{
    public string name { get; set; }
    public string id {get; set;}
    public List<double> data {get; set;}
}

 var data = (from t1 in MyContext.Table1
             from t2 in MyContext.Table2
             where t1.Id == "1"
             select new myData
             {
                 name = t1.Name,
                 id = t2.id
                 data = t2.datavalues      <== This obviously gives a conversion error
             }).FirstOrDefault();

これを解決する合理的な方法があるはずですが、何も見つかりませんでした。

どんな助けでも大歓迎です!

4

1 に答える 1

1

あなたがしたいJoinのはテーブルです:

var query = from t1 in MyContext.Table1
    join t2 in MyContext.Table2
    on t1.Id == t2.Id into t2Values
    select new myData
    {
        name = t1.Name,
        id = t1.id,
        data = t2Values.Select(t2 => t2.SomeField),
    };
于 2013-04-10T19:33:23.823 に答える