我得到了以下 sql 语句,我想使用带有 linq(lambda 表达式)的实体框架来实现。这是 SQL:select *from tbl_ExampleStoneCatalog join tbl_ExampleStoneCategory on tbl_ExampleStoneCatalog.fk_ESC = tbl_ExampleStoneCategory.pk_ESC join tbl_ExampleStoneson tbl_ExampleStoneCatalog.fk_ES = tbl_ExampleStones.pk_ESjoin tbl_ExampleReviewStoneCatalog on tbl_ExampleStones.pk_ES = tbl_ExampleReviewStoneCatalog.fk_ESwhere .fk_StoneCategory = '%someParameter%'我尝试使用 .include() 这让我想到了这个:var res = (await this._exampleStoneCatalog.Query() .include(esc => esc.ExampleStoneCategory) .include(es => es.ExampleStones) .include(es => es.ExampleStones.ExampleReviewStoneCatalog)) .Where(w => w.ExampleStones.ExampleReviewStoneCatalog.Any( a => a.StoneCategoryID.Equals(%someParameter%)));不幸的是,上面提到的代码不会给我带来想要的结果。此外,其中有一个嵌套的Where条件 => ExampleStones.ExampleReviewStoneCatalog.StoneCategoryID。根据我经过一些研究后的理解,使用 .include() 无法轻松解决此问题。还有其他方法可以使用 lambda 表达式过滤嵌套查询吗?
2 回答
哔哔one
TA贡献1854条经验 获得超8个赞
如果看起来像是多对多的关系。我总是觉得从这里的连接表开始最容易。
var res = _tbl_B.Repository.Where(b => b.c.Value == "whatever" && b.a.Value == "whatever").Select(b => b.a);
- 2 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消