c# - 如何从表中获取所有链接的记录
问题描述
我有一个带有自身链接的表的 MS SQL 服务器
| Id| PreviousId| Decription |
|---|:---------:|------------:|
| 1 | null | Blah |
| 2 | 1 | Blah |
| 3 | 2 | Blah |
我需要从Id=3
.
我的清单应如下所示:
public class Record{
public int Id {get;set;}
public int? PrevId {get;set;}
public string Desc {get;set;}
}
List<Record> records= new List<Record>();
/*Code to get all records*/
//Result
record[0] = Record(){Id=3,PrevId=2,Descr="Blah"}
record[1] = Record(){Id=2,PrevId=1,Descr="Blah"}
record[2] = Record(){Id=1,PrevId=null,Descr="Blah"}
谢谢!
EDIT1:对不起,伙计们,但我没有提到 ID 不正确。并且可能会出现以下情况,例如,ID=17 的记录链接到 id =12 的先前记录
解决方案
假设您的表名为Record
,那么在您的模型(上下文类)中,您应该具有表示表调用的属性Record
或Records
(如果您在模型中设置复数名称)。因此,从表中获取记录是通过您可以使用普通 LINQ 方法的属性完成的,例如Where
:
var result = dbContext.Records.Where(r => r.Id >= 3).ToList();
ToList()
将导致查询执行。
编辑:基于过滤PreviousId
,然后使用:
var result = dbContext.Records.Where(r => r.PreviousId == 3).ToList();