Я пытаюсь группировать по CategoryId и отображать свойство CategoryId + Name для группы, мне нужна помощь в модификации этого кода, чтобы можно было отобразить свойство Name, посмотреть вид ниже, увидеть, что я имею в виду.Linq grouping получает несколько свойств
Database
ItemCategory
INT ItemId
INT CategoryId
Категория
INT CategoryId
INT? ParentId
строки Имя
var itemcategories = db.Fetch<ItemCategory, Category>(@"SELECT * FROM ItemCategory LEFT JOIN Category on Category.CategoryId = ItemCategory.CategoryId WHERE ItemId = @0", item.ItemId);
var grouped = from b in itemcategories
where b.Category.ParentId != null
group b by b.Category.ParentId ?? 0 into g
select new Group<int, ItemCategory> { Key = g.Key, Values = g };
public class Group<K,T>
{
public K Key;
public IEnumerable<T> Values;
}
Ввиду
@foreach (var group in @Model.ItemCategories)
{
@group.Key **Category.Name should be displayed here**
}
foreach (var value in group.Values)
{
@value.Category.Name
}
Можете ли вы уточнить, в чем проблема? У вас уже есть '@ value.Category.Name'. Является ли проблема тем фактом, что вы ожидаете, что '@ group.Key' будет именем категории? –
Да, я хочу, чтобы @ group.key называлась категорией. –
, но это невозможно с тем, как вы создали свой класс Group, потому что тип 'Key' -' int', а тип 'Category.Name' -' string'. Итак, как мы это сделаем ? –