Piterek Ответов: 1

Как написать запрос linq со списком двух соединенных таблиц a и B, затем сгруппированных по идентификатору a и количеству Соединенных строк из B


Как написать запрос Linq со списком двух соединенных таблиц A и B, затем сгруппированных по идентификатору A и количеству Соединенных строк из B

Например

класс а{
int Id,
предложение инт ,
строку имя
};

класс В{
int Id,
описание строки
};

И отобразить следующим образом (после соединения с Б) А. Ставка = Б. ИД

ИД | счетчик(идентификатор) | Аимя

Что я уже пробовал:

How to write Linq query with list of two joined tables A and B, then grouped by id of A, and with amount of joined rows from B

For example

class A{
   int Id,
   int BId,
   string AName
};

class B{
   int Id,
   string description
};

And to display as follows (after joins of A with B) A.Bid = B.Id

A Id |  count(Id) | AName

1 Ответов

Рейтинг:
7

Clifford Nelson

Думаю, это то, что вы ищете:

  class Program
    {
        static void Main(string[] args)
        {
            var listA = new List<A>
            {
                new A{Id = 1, BId = 1, AName = "A" },
                new A{Id = 2, BId = 2, AName = "B" },
            };
            var listB = new List
            {
                new B{Id = 1,  description = "dA" },
                new B{Id = 2, description = "dB" },
            };

            var result = listA.Select(a => 
new { Id = a.Id, Name = a.AName, count = listB.Count(b => b.Id == a.Id) });
        }

        class A
        {
          public  int Id { get; set; }
            public int BId { get; set; }
            public string AName { get; set; }
        };

        class B
        {
            public int Id { get; set; }
            public string description { get; set; }
        };
    }