Здравствуйте, Аноним, Вы писали:
А>но стоит заменить выделенную g на g1 во втором селекте и начинает выкидывать ошибку
А>что такое? ведь второй селект не видит первый
Потому что результатами Select'ов становятся разные типы, которые не могут быть объеденены Union'ом.
Когда вы делаете так:
new {
unionCityID = g.oldCityID,
g
}
..Вы создаёте анонимный тип с полем 'unionCityID' типа int и полем 'g' типа City.
Обратите внимание на имена полей — их можно либо указать явно, либо они возьмутся из выражения, если это возможно.
Заменив
g на
g1, Вы просто создадите
другой анонимный тип с вторым полем 'g1', который не будет иметь ничего общего с анонимным типом, возвращаемым первым Select'ом.