所以我有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的任何属性。
答案 0 :(得分:1)
听起来你想使用关联属性:
实体框架关联属性:http://msdn.microsoft.com/en-us/data/jj713564.aspx
Linq to SQL关联属性:http://msdn.microsoft.com/en-us/library/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查询中的联接的更多信息