gpt4 book ai didi

c# - EF 如何使用 .include() 查询更多实体并使用存储库模式

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:29 25 4
gpt4 key购买 nike

我得到了以下 sql 语句,我想用带有 linq(lambda 表达式)的 Entity Framework 来实现。这是 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 表达式过滤嵌套查询?

最佳答案

If 看起来像是多对多关系。我总是发现从这里的连接表开始最容易。

var res = _tbl_B.Repository.Where(b => b.c.Value == "whatever" && b.a.Value == "whatever").Select(b => b.a);

关于c# - EF 如何使用 .include() 查询更多实体并使用存储库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51538232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com