我有 2 个具有 1-1 关系的表我正在尝试使用 .Include() for LINQ 尝试将子表实体传递给属性,以便我可以将子表字段以及字段绑定到网格从父表。最初它像这样工作得很好,我能够绑定到网格,但只能从 BUGroupBuildings 表中获取结果。我还需要绑定到 vwBuisnessUnits 表中的一个字段。
public IQueryable<BUGroupBuilding> GetBusinessUnitsBasedOnGroupID(int i)
{
var result = from d in this.ObjectContext.BUGroupBuildings
join b in this.ObjectContext.vwBusinessUnits on d.BU equals b.BU
where d.BUGroupID == i
orderby d.BU ascending
select d;
return result;
}
当我切换到使用 Include带回子表字段时,出现错误
public IQueryable<BUGroupBuilding> GetBusinessUnitsBasedOnGroupID(int i)
{
var result = from d in this.ObjectContext.BUGroupBuildings
.Include("vwBuisnessUnits")
select d;
result = result.Where(w => w.BUGroupID == i).OrderBy(o => o.vwBusinessUnit.BU);
return result;
}
错误:
查询“GetBusinessUnitsBasedOnGroupID”的加载操作失败。指定的包含路径无效。EntityType 'EQUITYDWModel.BUGroupBuilding' 未声明名为 'vwBuisnessUnits' 的导航属性
这是我的实体
我在元数据中添加了必要的 [Include]。
[MetadataTypeAttribute(typeof(BUGroupBuilding.BUGroupBuildingMetadata))]
public partial class BUGroupBuilding
{
internal sealed class BUGroupBuildingMetadata
{
// Metadata classes are not meant to be instantiated.
private BUGroupBuildingMetadata()
{
}
public string BU { get; set; }
[Include]
public BUGroup BUGroup { get; set; }
public int BUGroupBuildingsID { get; set; }
public Nullable<int> BUGroupID { get; set; }
[Include]
public vwBusinessUnit vwBusinessUnit { get; set; }
}
}