在我的控制器中,我包括像这样的Balances和RZiS
Analysis1Full analysis1Full = db.Analysis1Full
.Include(u => u.Balance)
.Include(r => r.RZiS)
.SingleOrDefault(u => u.Analysis1FullId == id);
//enter code here
它给了我正确的对象。关键是我想按字符串归档(年份)进行排序。但它给了我一个错误:
Analysis1Full analysis1Full = db.Analysis1Full
.Include(u => u.Balance.OrderBy(y => y.Year))
.Include(r => r.RZiS)
.SingleOrDefault(i => i.Analysis1FullId == id);
错误:
EntityFramework.dll中发生了'System.ArgumentException'类型的异常,但未在用户代码中处理
附加信息:Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。
答案 0 :(得分:0)
抛出异常的原因仅仅是因为它是以这种方式设计的。根据{{3}},仅包含() 指定要包含在查询结果中的相关对象。
要让孩子接受订单,您可以在访问时添加 OrderBy(),或者您需要在其他查询中加载它们。
答案 1 :(得分:0)
我这样解决了......它正在运作
Analysis1Full analysis1Full = db.Analysis1Full.Find(id);
analysis1Full.Balance = db.Balances.Where(t=>t.Analysis1FullId == analysis1Full.Analysis1FullId).OrderBy(y=>y.Year).ToList();
analysis1Full.RZiS = db.RZiS.Where(t => t.Analysis1FullId == analysis1Full.Analysis1FullId).OrderBy(y => y.Year).ToList();
你认为这是一个好方法吗?