Ho un hashset di stringhe che rappresenta tmdbId's per i film che ho sul disco - chiamato moviesOnDisk.LINQ to SQL: "Metodo 'Boolean Contains (System.String)' non ha traduzione supportata in SQL."
Ho un database di oggetti filmato, indicizzato su tmdbId
.
Voglio eliminare i record che esistono nel database ma non esistono sul disco.
ho questa linea per ottenere la differenza:
var toDelete = Database.Movies.Where(x => !moviesOnDisk.Contains(x.TMDbId));
questo mi dà alcun risultato e il seguente messaggio:
Metodo 'booleana Contiene (System.String)' non ha alcuna traduzione supportato a SQL.
C'è un lavoro da fare per questo? Ovviamente posso scorrere su entrambe le liste, ma sto andando per la migliore prestazione.
var = toDelete Database.Movies.Where (x =>! MoviesOnDisk) .Contains (x.TMDbId); –
La tua dichiarazione dovrebbe funzionare. 'moviesOnDisk' è sicuramente un' HashSet ', giusto? –
Rob
sì è - Sono davvero confuso perché sta generando un'eccezione ... – user3689167