开发者

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!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜