我得到了以下 sql 语句,我想使用带有 linq(lambda 表达式)的实体框架来实现。这是 SQL:
select *
from tbl_ExampleStoneCatalog
join tbl_ExampleStoneCategory
on tbl_ExampleStoneCatalog.fk_ESC = tbl_ExampleStoneCategory.pk_ESC
join tbl_ExampleStones
on tbl_ExampleStoneCatalog.fk_ES = tbl_ExampleStones.pk_ES
join tbl_ExampleReviewStoneCatalog
on tbl_ExampleStones.pk_ES = tbl_ExampleReviewStoneCatalog.fk_ES
where .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 表达式过滤嵌套查询吗?
哔哔one
相关分类