C# 实体框架返回包含子字符串的所有项目

C# 实体框架返回包含子字符串的所有项目,c#,entity-framework,asp.net-core,C#,Entity Framework,Asp.net Core,我在一个asp.net核心站点工作,我试图通过实体框架查询我们的项目数据库。我们的项目ID设置如下: 0192-10-001, 0192-10-001A, 0192-10-001B, 0192-10-001C, 0192-10-001BE, ... 对于同一个项目,但通过不同部门的信函进行跟踪。我希望能够去掉这些字母并返回子字符串(0192-10-001)关联的所有项目。我是linq的新手,我很可能完全想得太多了,但我希望有人能给我指出正确的方向 我尝试了以下查询: //This is wha

我在一个asp.net核心站点工作,我试图通过实体框架查询我们的项目数据库。我们的项目ID设置如下:

0192-10-001, 0192-10-001A, 0192-10-001B, 0192-10-001C, 0192-10-001BE, ...

对于同一个项目,但通过不同部门的信函进行跟踪。我希望能够去掉这些字母并返回子字符串(0192-10-001)关联的所有项目。我是linq的新手,我很可能完全想得太多了,但我希望有人能给我指出正确的方向

我尝试了以下查询:

//This is what I thought would work
return _context.Projects.Where(a => a.Project_ID.Contains(ID));

//Another approach
return _context.Projects.Where(a => a.Project_ID == ID);

//Getting more confused and desperate
return _context.Projects.Where(a => ID.Any(n => a.Project_ID.Contains(ID)));


如果您需要更多信息,请告诉我

如果您想返回项目ID包含
ID
(“0192-10-001”)的项目列表,只需使用

var list = _context.Projects.Where(p => p.Project_ID.Contains(ID)).ToList();

这是我的工作。但搜索文本必须与ID匹配

var filtered = _context.Projects.Where(x => "0192-10-001".Contains(x.ID)).ToList();

您可以将变量替换为“0192-10-001”文本。

您当前得到的结果是什么,以及您期望得到的结果是什么?什么意思
去掉字母
?您能给出一个您想要得到的示例结果吗?如果您想检索包含ID的所有记录,
\u context.Projects.Where(p=>p.Project\u ID.contains)(ID)).ToList();
工作正常。感谢大家的回答,所有这些回答都是正确的!结果是URL输入错误,无法正确收集字符串。这在没有返回任何内容时是有意义的!