Я использую LINQ to SQL в своем проекте.
У меня есть две таблицы Category и Artifacts с отношением один-ко-многим между Category и Artifacts. На основе CatgID я пытаюсь удалить артефакты. Написанный мною запрос проверяет, существует ли какой-либо артефакт с внешним ключом id, затем я группирую ID артефакта в g для подсчета, чтобы можно было выполнить условие для передачи идентификатора артефакта в качестве параметра функции, которая будет удалять все в таблице Артефактов.
Я не могу выбрать ArtId с использованием той же переменной диапазона 'a'. Почему бы и нет? Как я могу сделать это или иным образом добиться того, чего я хочу?
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);
}
}
}