0

所以我有 2 个模型,其中 Model2 链接到 Model1:

public class Model1 {
    public int model1ID { get; set; }
    public int model2ID { get; set; }
}
public class Model2 {
    public int model2ID { get; set; }
    public int someData { get; set; }
}

我想这样做:

public class Model1 {
    public int model1ID { get; set; }
    public Model2 model2 { get; set; }
}

所以我可以这样做:

        var linqTest = (
            from curTest in database.Model1s
            select curTest 
        ).Sum(curTest => curTest .model2.someData);

编辑:

我的问题是我如何告诉 c# 如何使用“model2ID”加载“model2”属性?我得到的具体错误是:

{"Invalid column name 'model1_ID'.\r\n Invalid column name 'model1_ID'."}

请注意,我没有任何名为 model1_ID 的属性。

4

1 回答 1

1

听起来您想使用关联属性:
实体框架关联属性:http: //msdn.microsoft.com/en-us/data/jj713564.aspx
Linq to SQL 关联属性:http: //msdn.microsoft.com/ zh-cn/图书馆/bb629295.aspx

您的具有关联属性的数据模型将类似于:

public class Model1 
{
    public int model1ID { get; set; }
    public int model2ID { get; set; }
    public virtual Model2 model2 { get; set; }
}

public class Model2
{
    public int model2ID { get; set; }
}

如果您不想使用关联属性,可以在查询中使用联接:

var linqTest = (
            from mod1 in database.Model1s
            join mod2 in database.Model2s
                on mod1.model2ID equals mod2.model2ID
            select new { Mod1 = mod1, Mod2 = mod2 } 
        ).Sum(row => row.Mod2.someData);

查看@nercan 发布的链接以获取有关 Linq 查询中的连接的更多信息

于 2013-05-06T16:42:29.757 回答