我将实体框架6与MVC一起使用,并且我在控制器中使用此查询:
using (var context = new MyDbContext())
{
IQueryable<ContentArticle> query;
query = context.ContentArticle.Where(
c => c.ContentArticleSubdivisions.Subdivisions.Name == subdivision
编译器抱怨
'System.Collections.Generic.ICollection<MySite.DAL.Models.ContentArticleSubdivision>' does not contain a definition for 'Subdivisions'
但我的内容文章模型包含此属性:
public virtual ICollection<ContentArticleSubdivision> ContentArticleSubdivisions { get; set; }
我的内容文章细分模型包括:
public partial class ContentArticleSubdivision
{
...
public virtual ICollection<Subdivision> Subdivisions { get; set; }
}
所以我做错了什么?我想我需要修改查询,以便它查找可能包含在ContentArticleSubdivisions集合中的所有可能的细分?
答案 0 :(得分:1)
您需要使用某种基于集合的方法来执行此操作。我不确定你要在这里查询什么。我假设您想要所有与该名称匹配的细分文章。
query = context.ContentArticle.Where(
c => c.ContentArticleSubdivisions.Any(cs => cs.Subdivisions.Any(s => s.Name == subdivision))
);
你也可以使用像这样的查询理解语法来简化这个
query = from ca in context.ContentArticle
from cas in ca.ContentArticleSubdivisions
from s in cas.Subdivisions
where s.Name == subdivision
select ca;