Получить данные из двух списков условно с помощью LINQ Entity Framework - PullRequest
1 голос
/ 17 октября 2019

У меня есть два списка:

using (DBEntities context = new DBEntities()) {

    var userInfoList = context.UsersInfoes.ToList();
    var membersList = context.Members.ToList();

}

Эти два списка представлены в таблицах, как показано ниже:

enter image description here

enter image description here

Я хочу иметь возможность перебирать оба списка ГДЕ TEAMID равен '10' и добавить FKUserID и Name в третий списокгде FKUserID совпадает в обеих таблицах .

enter image description here

Можно ли как-нибудь сделать это максимально эффективно и выдать эти результаты в третьем списке?

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Вы можете использовать linq join предложение следующим образом:

var ThirdList = 
    from member in MembersList
    join userInfo in UserInfoList on member.FKUserID equals userInfo.FKUserID
    where member.TeamID == 12  // change 12 to the TeamID needed
    select new { TeamID = member.TeamID, FKUserID = member.FKUserID, Name = userInfo.Name};

foreach(var tlist in ThirdList)
{
    Console.WriteLine("{0} | {1} | {2}", tlist.TeamID, tlist.FKUserID, tlist.Name);
}

Выход:

12 | 6 | kjh
12 | 7 | ghg
12 | 8 | dfi
0 голосов
/ 17 октября 2019

Я не тестировал этот LINQ, но он должен работать. Вы сказали, что хотите TeamID = 10, но использовали 12 в своих таблицах. Очевидно, просто измените 12 на то, что вы хотите, чтобы TeamID был.

        var ThirdList = (from y in userInfoList join z in membersList on y.FKUserID equals z.FKUserID 
                         where z.TeamID == 12 
                         select new { 
                               TeamID = z.TeamID,
                               FKUserID = z.FKUserID,
                               Name = y.Name
                                    } ).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...