I have an EF query in which I am returning an 'Item' by it's unique identifier. I'm using the scaffolded controller provided by MVC and this works ok, but now I want it to return a list of tags which belong to the item.
I thought I might be able to use 'Include' as shown below to eager fetch the tags. However this does not seem to be allowed when using async.
Item item = await db.Items.Include("Tags").FindAsync(id);
Can anybody explain why this won't work and suggest an alternative way to bring back the item's tags?
Cheers
Ben
Find()
andFindAsync()
are methods on typeDbSet
(which is whatdb.Items
is).Include()
returns aDbQuery
object, which is whyFindAsync()
is not available. UseSingleOrDefaultAsync()
to do the same thing asFindAsync()
(the difference is it will go straight to the database and won't look in the context to see if the entity exists first)...Followed by @Anthony and @Korayem answer, I recommend to do as below for safer code.