powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq сгруппировать в лист
3 сообщений из 3, страница 1 из 1
Linq сгруппировать в лист
    #39498344
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каким образом можно при джойне 2 таблиц получить результат в сгруппированный лист? В данном примере вместо таблиц просто классы, нужен на выходе List<AssetDTO>() который бы в поле Items содержал лист AssetItem для каждого Asset, т.е. например для AssetID = 1 будет лист из 2х AssetItem

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
public class AssetDTO
    {
        public int AssetID;
        public string AssetName;
        public List<AssetItem> Items;
    }


    public class Asset
    {
        public int AssetID { get; set; }
        public string Name { get; set; }        
    }


    public class AssetItem
    {
        public int AssetItemID { get; set; }
        public int AssetID { get; set; }
    }


 List<Asset> assetList = new List<Asset>();
            assetList.Add(new Asset { AssetID = 1, Name = "One"});
            assetList.Add(new Asset { AssetID = 2, Name = "zzz" });
            assetList.Add(new Asset { AssetID = 3, Name = "xxx" });
           

            List<AssetItem> itemsList = new List<AssetItem>();
            itemsList.Add(new AssetItem { AssetItemID = 1, AssetID = 1 });
            itemsList.Add(new AssetItem { AssetItemID = 2, AssetID = 1 });
            itemsList.Add(new AssetItem { AssetItemID = 3, AssetID = 2 });
            itemsList.Add(new AssetItem { AssetItemID = 4, AssetID = 3 });
            itemsList.Add(new AssetItem { AssetItemID = 5, AssetID = 3 });



            var ccc = from a in assetList
                      join b in itemsList on a.AssetID equals b.AssetID
                      select new List<AssetDTO>();
...
Рейтинг: 0 / 0
Linq сгруппировать в лист
    #39498347
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделай так и EF сгруппирует все тебе автоматически
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class Asset
{
     public int Id { get; set; }
     public string Name { get; set; }        
}
public class AssetItem
{
    public int Id { get; set; }

    public int AssetId { get; set; }
    public ICollection<Asset> Asset{ get; set; }
}
...
Рейтинг: 0 / 0
Linq сгруппировать в лист
    #39498351
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправочка

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class Asset
{
     public int Id { get; set; }
     public string Name { get; set; }      

     public ICollection<Asset> Asset{ get; set; }  
}
public class AssetItem
{
    public int Id { get; set; }

    public int AssetId { get; set; }
    public Asset Asset{ get; set; }
}
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq сгруппировать в лист
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]