Multi-Level Includes in CodeFirst - EntityFrameWork
It is working code;
IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).(Include"Contexts.AdditionalProperties.Field");
But you know that it could not produce compile time error if we made mistake in string statement in "Contexts.AdditionalProperties.Field"
I would like to write code below;
IQueryable<Product> productQuery = ctx.Set<Product>().Where(p =&g开发者_Go百科t; p.Id == id).Include(p => p.Contexts);
But above statement could not give chance to define AdditionalProperties and Field.
What should we do?
I would like to write as more than one include for build query.
Thanks.
If AdditionalProperties is a single reference to another object:
using System.Data.Entity;
...
IQueryable<Product> productQuery = ctx.Set<Product>()
.Include(p => p.Contexts.AdditionalProperties.Field)
.Where(p => p.Id == id);
If AdditionalProperties is a collection then you can use the Select method:
IQueryable<Product> productQuery = ctx.Set<Product>()
.Include(p => p.Contexts.AdditionalProperties.Select(a => a.Field))
.Where(p => p.Id == id);
Don't forget to import System.Data.Entity namespace in your class file!
精彩评论