0

我是 LINQ 和实体框架的新手,到目前为止,我只能执行相对简单的数据查询。我刚刚开始使用以下代码查询数据并将结果存储在一个类中:

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 回答