Игнорировать дублирующиеся строки с помощью LINQ - PullRequest
0 голосов
/ 11 октября 2018

Я хочу отобразить уникальные строки после объединения двух таблиц:

Книга

Id        Title
12        Title 1
13        Title 2
14        Title 3

Автор

Id  BookId    Name
1   12        Steeve
2   13        Michel
3   13        Robert

Ожидаемый результат заключается в отображении последнего идентификатора (последней записи), когда BookId найден более одного раза в таблице авторов:

Мой действительный код LINQ

from book in Books
join author in Authors on book.Id equals author.BookId into gr1
from join1 in gr1.DefaultIfEmpty()

Фактический результат

BookId   AuthorId
12       1 
13       2
13       3
14       NULL

Ожидаемый результат

BookId   AuthorId
12       1 
13       3
14       NULL

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вот как:

var query = from book in Books
            join author in Authors on book.Id equals author.BookId into gr1
            select new { BookId = book.Id, AuthorId = gr1.LastOrDefault()?.Id };

Fiddle Me

0 голосов
/ 11 октября 2018

попробуйте предложение where

from book in Books
join author in Authors on book.Id equals author.BookId into gr1
from join1 in gr1.DefaultIfEmpty()
where author.authorID != null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...