Asp.net mvc MVC EF选择多个联接
我有下面的数据库结构。 我想使用实体框架进行选择。我想要我所有的Asp.net mvc MVC EF选择多个联接,asp.net-mvc,entity-framework,select,Asp.net Mvc,Entity Framework,Select,我有下面的数据库结构。 我想使用实体框架进行选择。我想要我所有的类别,它们可能有类别文本。如果他们有分类文本,我还需要获得语言 我搜索了一下,没有找到任何有用的东西。 以下是我的查询不起作用: var categoriesSQL = db.Categories .Include(i => i.CategoryTexts.Select(s => s.Language) .Where(w => w.For
类别
,它们可能有类别文本
。如果他们有分类文本
,我还需要获得语言
我搜索了一下,没有找到任何有用的东西。
以下是我的查询不起作用:
var categoriesSQL = db.Categories
.Include(i => i.CategoryTexts.Select(s => s.Language)
.Where(w => w.Format == (string)Session["chosen_language"]));
var categories = categoriesSQL.ToList();
它抛出:
包含路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,选择运算符作为集合导航属性。
参数名称:路径
我试图用很多方法和建议来解决这个问题,但我找不到解决办法
我希望只在一个查询中进行选择
谢谢大家! 试试这个
var language = (string)Session["chosen_language"];
var categoriesSQL = db.Categories
.Include(i => i.CategoryTexts.Select(s => s.Language))
.Where(c =>
(from ct in c.CategoryTexts
from l in ct.Languages
select l.Format).Contains(language)
);
var categories = categoriesSQL.ToList();
或
var language = (string)Session["chosen_language"];
var categoriesSQL = db.Categories
.Include(i => i.CategoryTexts.Select(s => s.Language))
.Where(c => c.CategoryText
.Any(ct => ct.Languages
.Any(l => l.Format == language)
)
);
var categories = categoriesSQL.ToList();