任何人都可以提供帮助,我使用linq2sql非常成功地使用我的关联(外键)来提供内连接等...
例如这个,效果很好,颜色存储在一个名为Color的表中,它有关联,所以我通过Color.Description选择它 - 非常好。对于StructureType,它实际上是一个关联,所以我通过structureType关联和StructureType表中的字段描述来获取它
from v in Houses
select new
{
Id = v.Id,
Color = v.Color.Description,
StructureType= v.StructureType.Description,
Price = v.StructureGroup.StructureGroupTariffs. // doesn't provide anything more only Any, All etc
}
问题是我试图链接的价格,所以房子有一个Association to StructureGroup,它与StructureGroupTariffs有关联,但我没有得到任何更多的选择..
将StuctureGroup链接到关税的链接表中的StructureGroupTariffs,
我实际上在这里用Linq中的链接表进行了测试,它确实有效!像这样
from g in StructureGroupTariffs
select new
{
Price = g.Tariff.Price
}
所以我有点困惑,为什么(见上文)这个
Price = v.StructureGroup.StructureGroupTariffs.
只返回Any,All等方法,但不返回关联....
任何人都可以帮忙吗
答案 0 :(得分:2)
StructureGroupTariffs是EntitySet而不是EntityRef,即它包含许多对象而不是单个对象。您无法将“多个”提取到您在查询中组装的“单个”中。
修改
我怀疑你的House表有一个StructureGroup,并且有一个Tariffs表,中间是一个StructureGroupTariffs表,它保存对每个其他表的FK引用,允许每个结构组有很多关税(无论是否实际上有很多关税)。因此Linq使用EntitySet来引用StructureGroupTariffs。