Ham*_*eli 10 sql-server recursion hierarchy sql-cte entity-framework-core
我的数据库中有一个表,用于存储位置的层次结构。它有 3 列(Id, Name, ParentId)
。我需要根据条件加载一些行以及它们的所有父行直到根。如果是在 ADO 中,我会使用以下语句。
with Temp
as
(
select * from Locations where Name like '%filter%'
union all
select Locations.*
from Temp join Locations on Temp.ParentId = Locations.Id
)
select * from Temp
Run Code Online (Sandbox Code Playgroud)
我正在使用 EFCore,并通过一些搜索发现实体框架如何与递归层次结构一起工作?Include() 似乎不适用于它 ,如何使用实体框架进行递归加载?还有一堆其他的,他们都老了。
我发现的所有解决方案要么对层次结构的深度进行硬编码(使用Include
),要么在 C# 中进行递归。所有这些,我的问题是最好的解决方案是什么?
我可以使用FromSqlRaw
(类似下面的代码),但是我不喜欢在 C# 中手动编写查询。
var locations = DataContext.Locations
.FromSqlRaw("MyQuery").ToList();
Run Code Online (Sandbox Code Playgroud)
我在用EFCore 3.1.7
归档时间: |
|
查看次数: |
5044 次 |
最近记录: |