C# Linq子查询同一个表
我有一张有Id和CategoryId的桌子 我需要从该表中获取与给定Id具有相同类别Id的所有记录 这就是我得出的结论:C# Linq子查询同一个表,c#,linq,C#,Linq,我有一张有Id和CategoryId的桌子 我需要从该表中获取与给定Id具有相同类别Id的所有记录 这就是我得出的结论: var query = from x in erm.Projects where x.CategoryId == erm.Projects.Where(y => y.Id == lookId).FirstOrDefault().CategoryId select x; 执行此查询的最佳方式是什么 多谢各位 int cat
var query = from x in erm.Projects
where x.CategoryId == erm.Projects.Where(y => y.Id == lookId).FirstOrDefault().CategoryId
select x;
执行此查询的最佳方式是什么
多谢各位
int catId = erm.Projects.Where(y => y.Id == lookId).FirstOrDefault().CategoryId;
var results = erm.Table
.Where(x=> x.CategoryId == catId)
.ToList();
或
您可以使用连接来执行这类操作。如果
FirstOrDefault()
返回null并且盲目地调用.CategoryId
,则还具有避免NullReferenceException
的优点
var query = erm.Table.Join(erm.Projects.Where(y => y.Id == lookId), x => x.CategoryId, y => y.CategoryId, (x,y) => x);
你可以用这种方式
var categoryId= erm.Projects.FirstOrDefault(y => y.Id == lookId).CategoryId;
var results = erm.Table
.Where(x=> x.CategoryId == categoryId)
.ToList();
lookId是一个Table.Id而不是Table.Category这就是您要查找的内容?使用该解决方案有什么问题?还有,您使用的是什么查询提供程序?
var categoryId= erm.Projects.FirstOrDefault(y => y.Id == lookId).CategoryId;
var results = erm.Table
.Where(x=> x.CategoryId == categoryId)
.ToList();