无需 LoadOptions 的预加载/预取多对多 - Linq to Sql
我遇到了一种情况,我需要通过多对多关系预取一些实体。所以它就像经典的 BlogPost <- BlogPostTag ->标记
情况。
是的,我知道 LoadOptions,但我无法使用它,因为它是一个 Web 应用程序,而且我正在使用每个请求一个数据上下文的模式。
您似乎也无法使用投影来预取多对多关系。是的?不?
我想根据一组博客返回 IQueryable
。我能做的最好的事情就是通过执行以下操作让它返回 IQueryable
:
public IQueryable<Tag> GetJobsCategories(IQueryable<BlogPost> blogPosts)
{
var jobCats = from bp in blogPosts
select bp.BlogPostTags.Select(x => x.Tag);
return jobCats;
}
我可以将其展平吗?我错过了一些明显的东西吗?我可以采取另一种方法吗?
不,我无法更改 ORM ;-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这将起作用,您可以在 linq 查询中向下钻取
如果您这样声明该方法:
您可以将其用作可查询的扩展方法。例如
This will work, you can just drill down in the linq query
If you declare the method as such:
You can use it as extension method on queryables. For instance