je les suivantes 3 tables avec leurs champsLinq Contient et Distinct
Livres (Id_Book | Titre | Année)
Book_Themes (Id | Id_Book | Id_Theme)
Thèmes (Id_Theme | Titre)
J'ai aussi un tableau Giud avec Id_Themes
Guid [] themesArray = new Guid []{new Guid("6236c491-b4ae-4a2f-819e-06a38bf2cf41"), new Guid("06586887-7e3f-4f0a-bb17-40c86bfa76ce")};
Je suis en train de faire tous les Livres contenant l'un des Theme_Ids du themesArray
C'est ce que j'ai à ce jour qui ne fonctionne pas. Je ne sais pas comment utiliser Contient dans ce scénario.
int index = 1; int size= 10;
var books = (from book in DB.Books
join bookWThemes in DB.Book_Themes
on book.Id_Book equals bookWThemes.Id_Book
where themesArray.Contains(bookWThemes.Id_Theme)
orderby book.Year
select book)
.Skip((index - 1) * page)
.Take(size);
Je reçois une erreur sur themesArray.Contains (bookWThemes.Id_Theme): System.Guid [] ne contient pas de définition pour Contains. Aussi je ne suis pas sûr où mettre le Distinct
* ***MISE À JOUR* ***
remarqué que mon modèle avait Id_Theme comme annulable .. J'ai changé le DB et n'ai pas reflété les changements sur mon modèle. Donc, pour répondre à la question s'il est NULL, changez simplement la ligne Contient en themesArray.Contains (bookWThemes.Id_Theme.Value) ... et avec cette modification cela fonctionne.
Merci pour toute l'aide !.
Est-ce une erreur de compilation? – user7116
Linq to Entities ou Linq to SQL? – BrokenGlass
oui c'est une erreur de compilation –