Я пытаюсь выполнить этот запрос, но он говорит, что c не определен в этом контексте.LINQ с группировкой и выбором столбцов из другой таблицы: ошибка «не определено в этом контексте»
var carts = from Cart c in Context.Cart
join ci in Context.CartItem on c.CartId equals ci.CartId
where c.UserIdentity == identity
orderby c.CartId descending
group c by new { c.CartId } into g
select new CartViewModel
{
Name = c.Name,
Active = (c.Active == true) ? "Yes" : "No",
IsCheckedOut = (c.IsCheckedOut == true) ? "Yes" : "No",
IsExpired = (c.IsExpired == true) ? "Yes" : "No",
Items = g.Count()
};
А вот мой класс
public class CartViewModel
{
public string Name { get; set; }
public string Active { get; set; }
public string IsExpired { get; set; }
public string IsCheckedOut { get; set; }
public int Items { get; set; }
}
Что может проблема. Я видел все примеры с выбором, они только выбирают сгруппированные столбцы. Я хочу получить счет из объединенной таблицы и выбрать все остальные столбцы из корзины. Я новичок в .Net.
Примечание: У корзины несколько элементов CartItems. Так что мне нужно подсчет в CartViewModel.
Конечно, это не так: после 'group by' определяется только' g'. См. 'IGrouping'. Зачем вы выбираете группу в первую очередь? –
, если это 'undefined', как я могу« выбрать »и« сопоставить »с моим классом« CartViewModel » –
Нужны ли вам другие агрегаты, чем' Count'? –