假设首先使用这些模型:
Method
有一个OriginalCode
OriginalCode
Mutant
个Mutant
ParseSubTree
有许多Method
s
现在查询Method targetMethod = dBContext.Methods
.Include(me => me.OriginalCode)
.ThenInclude(oc => oc.Mutants)
.FirstOrDefault(me => me.Id == id);
时我希望另一个被加载。所以我有以下内容:
ParseSubTree
,下一步是另外加入urlpatterns = [
url(r'^nojs/$', views.nojs),
url(r'^blog/all/$', views.allTitles),
url(r'^post/(?P<id>[\d+]+)/(?P<title>[\w+]+)/$', views.viewArticle)
]
。但问题是我无法访问它。请参见以下图像:
问题是“mu是列表而不是对象引用”!
我的错误在哪里!
TG
答案 0 :(得分:31)
这是一个已知的Intellisense问题,集合类型导航属性的ThenInclude
重载,由Completion missing members of lambda parameter in fault tolerance case #8237 Roslyn GitHub问题跟踪。
在修复之前,只需键入属性的名称,它就会成功编译并按预期工作。
.ThenInclude(mu => mu.ParseSubTrees)
更新:现在甚至在EF Core文档的Including multiple levels 部分中特别提及:
注意强>
当前版本的Visual Studio提供了错误的代码完成选项,并且在收集导航属性后使用
ThenInclude
方法时,可能会导致正确的表达式被标记为语法错误。这是https://github.com/dotnet/roslyn/issues/8237跟踪的IntelliSense错误的症状。只要代码正确并且可以成功编译,就可以安全地忽略这些伪造的语法错误。
答案 1 :(得分:2)
就我而言,名称空间System.Data.Entity和Microsoft.EntityFrameworkCore之间存在冲突。只需删除第一条使用行。