EF Core Second level ThenInclude missworks

.net-core entity-framework entity-framework-core include


Assume having these models first:

Method that has one OriginalCode OriginalCode that has many Mutants Mutant that has many ParseSubTrees

Now when querying on Method I want the other being loaded. So I have the following:

Method targetMethod = dBContext.Methods
            .Include(me => me.OriginalCode)
                .ThenInclude(oc => oc.Mutants)
            .FirstOrDefault(me => me.Id == id);

and the next step is to include additionally the ParseSubTree. But the thing is that I can't access it. See the following Image:

mu is a list except object reference

the problem is "mu is a list instead of being an object reference"!

Where is my mistake!


8/13/2017 8:16:46 AM

Accepted Answer

This is a known Intellisense issue with the ThenInclude overload for collection type navigation properties, tracked by the Completion missing members of lambda parameter in fault tolerance case #8237 Roslyn GitHub issue.

Until it gets fixed, simply type the name of the property and it will compile successfully and work as expected.

.ThenInclude(mu => mu.ParseSubTrees) 

Update: Now it's even specifically mentioned in the Including multiple levels section of the EF Core documentation:


Current versions of Visual Studio offer incorrect code completion options and can cause correct expressions to be flagged with syntax errors when using the ThenInclude method after a collection navigation property. This is a symptom of an IntelliSense bug tracked at https://github.com/dotnet/roslyn/issues/8237. It is safe to ignore these spurious syntax errors as long as the code is correct and can be compiled successfully.

10/10/2018 8:06:29 PM

Related Questions


Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow