实体框架6错误- ICollection不包含子实体的定义
本文关键字:实体 包含 定义 ICollection 框架 错误 | 更新日期: 2023-09-27 18:12:10
我使用实体框架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; }
}
我做错了什么?我想我需要修改查询以便它查找所有可能包含在contentarticlessubdivision集合中的subdivision ?
您需要使用某种基于集合的方法来做到这一点。我不太确定你想在这里查询什么。我假设你想要所有的文章,其中一个细分存在匹配的名称。
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;