似乎我无法在我的域服务中的 include 上放置 where 子句 - 所以我们正在做一些循环来获取一些查找组所需的数据。
var _lookupGroups = _lookupGroupRepository.All();
var _lookupValues = _institutionLookupValueRepository.All().Where(x => x.InstitutionID == _userProfile.InstitutionID);
int i = 0;
foreach (var _group in _lookupGroups)
{
var _values = _lookupValues.Where(x => x.LookupGroupID == _group.LookupGroupID);
foreach (var _value in _values)
{
_group.InstitutionLookupValues.Add(_value);
i++;
}
Console.WriteLine(_group.GroupName + " " + i.ToString());
}
return _lookupGroups;
我输入的计数器是为了验证我所看到的——我们迭代的第一组是状态。我的计数器会说 50,但我的导航属性会说 100,显示我们拥有的每个机构的一组 50(我们有 2 组)。所以它正在获取所有查找值并将它们放入导航属性中,即使我的计数器显示为 50。我还删除了元数据文件中的所有包含。
澄清一下:我有附加到lookupGroups的lookupvalues。查找值分配给机构。因此,如果我去获取 STATES 查找组的值,我将获得 50 个查找值。上面的代码。当我运行此行时 _group.InstitutionLookupValues.Add(_value); 我的机构LookupValues = 100(无论机构如何,都采用所有lookupValues)。但我的计数器显示 50。在某个地方,我得到了所有查找值,不确定与特定机构相关联的值。