无法使用LINQ to SQL中的范围变量访问表字段
本文关键字:范围 变量 访问表 字段 SQL LINQ to | 更新日期: 2023-09-27 18:25:44
我在项目中使用LINQ to SQL。我有两个表Category和Artifacts,Category和Artifacts之间有一对多的关系。在CatgID的基础上,我正在尝试删除工件。我写的查询检查是否存在外键为id的工件,然后我将工件id分组为g以便计数,这样我就可以设置一个条件,将工件id作为参数传递给一个函数,该函数将删除工件表中的所有内容。
我无法使用相同的范围变量"a"选择ArtId。为什么不呢?我如何才能做到这一点或以其他方式实现我想要的?
public static void DeleteCategory(int id)
{
var result = from a in adb.Artifacts
where a.CatgId == id
group a by a.ArtId into g
select new { count = g.Count(), **artid = a.ArtId** }; //not able to get ArtId using range variable a.
if (result.count > 0)
{
foreach (var r in result)
{
MyArtifact.DeleteByKey(r.artid);
}
}
}
您可以只使用g.ArtId,因为您按ArtId:分组
public static void DeleteCategory(int id)
{
var result = from a in adb.Artifacts
where a.CatgId == id
group a by a.ArtId into g
select new { count = g.Count(), artid = g.Key }; //not able to get ArtId using range variable a.
if (result.count > 0)
{
foreach (var r in result)
{
MyArtifact.DeleteByKey(r.artid);
}
}
}