如何解决在类型上声明的方法不能用类型的实例调用
我有这个查询:
var isTrue = db.Locations.Any(l => l.Position == location.Position && db.Layer.Find(l.LayerId).Name == "MyLayerName");
引发异常
在类型上声明的方法不能用类型的实例调用
为什么会这样,我该如何解决?
解决方法
假设db
是DbContext
,并且您的模型具有导航属性,请尝试:
var isTrue = db.Locations.Any(l => l.Position == location.Position && l.Layer.Name == "MyLayerName");
否则进行重构,因为ef core无法使用Find
生成查询,而您必须使用ToList()
获取所有位置:
var isTrue = db.Locations.Where(l => l.Position == location.Position).ToList().Any(l => db.Layer.Find(l.LayerId).Name == "MyLayerName");
请注意,第二个将调用您的数据库n + 1次。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。