Ho una relazione molti-a-molti tra Account e PaymentSystems. Voglio elencare tutti i sistemi di pagamento non ancora assegnati a un account. A tal fine, sto cercando di utilizzare la seguente query LINQ to Entities:Come si effettua una query "Eccetto" LINQ alle entità?
PaymentGatewayEntities pge = new PaymentGatewayEntities();
Account account = pge.Accounts.Single(item => item.id == accountId);
var paymentSystems = pge.PaymentSystems.Except(account.PaymentSystems);
Tuttavia, ottengo la seguente eccezione quando si cerca di visualizzare i risultati: "System.NotSupportedException: impossibile creare un valore costante di digitare "MyNamespace.Models.PaymentSystem". Solo i tipi primitivi ('come Int32, String e Guid') sono supportati in questo contesto. " Che cosa sto facendo di sbagliato? Sto usando EF4.
UPD: var paymentSystems = pge.PaymentSystems.Where (item =>! Item.Accounts.Contains (account)) restituisce la stessa eccezione.