我试图找出我在下面的 LINQ 语句中做错了什么。它不喜欢第三个 SELECT
。当我输入查询时,它会在 Intelisense 中找到 tblAddresse.tblAdminCounty
,但当我在它之后输入 SELECT 时,它会很奇怪。
这是否与 tblAddress
和 tblAdminCounty
的关联方式有关?我本以为它在 tblAddress
下的 Intellisense 中显示的事实会使该声明不言而喻,但显然不是。
如果我在一个单独的函数中只查询 CountyName,它看起来像这样 -->
var countyName = from adminCounty in context.tblAdminCounties
where adminCounty.CountyID == countyID
select adminCounty.CountyName;
这是基于该站点的更大的 3 层方法 --> HERE
var query = from tblBusinesse in context.tblBusinesses
where tblBusinesse.BusinessID == businessID
select new
{
tblBusinesse.BusinessName,
tblBusinesse.ContactName,
tblBusinesse.EmailAddress,
Address = from tblAddresse in tblBusinesse.tblAddresses
select new
{
tblAddresse.AddressLine1,
tblAddresse.AddressLine2,
tblAddresse.AddressLine3,
tblAddresse.CityName,
County = from adminCounty in tblAddresse.tblAdminCounty
select new
{
adminCounty.CountyName
}
}
};
最佳答案
您正在尝试查询它,就好像一个地址有多个县一样。它被称为 tblAdminCounty
而不是 tblAdminCounties
是否表明它只是一个项目?
尝试改变这个:
County = from adminCounty in tblAddresse.tblAdminCounty
select new
{
adminCounty.CountyName
}
只是:
County = tblAddresse.tblAdminCounty
关于c# - LINQ 一对多,3 级深度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165232/