1
我使用LINQ在我的项目,以SQL表的字段。 我有两个表类别和工件与分类和工件之间的一对多关系。在CatgID的基础上,我试图删除工件。我写的查询检查是否有任何工件存在id的外键,然后我将Artifact ID分组到g以便进行计数,以便我可以创建条件以将Artifact ID作为参数传递给将删除的函数Artifacts表中的所有内容。无法访问使用范围变量中的LINQ to SQL
我不能使用相同的范围变量“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);
}
}
}
嘿HCB, 我一直在使用范围变量g和访问神器表的artid的数据类型尝试。但是,当我做到这一点,我面对这个错误 “‘System.Linq.IGrouping’不包含关于‘artid的数据类型’和没有扩展方法‘artid的数据类型’接受型的第一参数'的定义System.Linq.IGrouping ”可以找到(是否缺少using指令或程序集引用?)” –
2012-02-23 11:56:21
您可以使用g.First()。artid的数据类型。我认为这应该工作(我也会编辑答案) – hcb 2012-02-23 12:01:47
是的这个工程,但我不能理解使用First()的概念。它说First()返回序列的第一个元素! – 2012-02-23 12:04:19