Ich habe die folgenden Tabellen in meiner Datenbank:IN subquery Verwendung in Entity Framework Linq mit
- Reservation
- TrainStation
- Train
- Traveller
- Reservation_Traveller
- TrainSeats: Attributes are: Train_Id, Seat, Traveller_Id
ich die TrainSeats Zeilen einer bestimmten Reservierung
Ich habe ein Reservation
Objekt zu suchen, die eine enthält ICollection<Traveller>
Eigenschaft, die Reisende enthält, von denen ich ihre Sitze vom TrainSeats-Tisch entfernen möchte. Ich holte die Reservierung Objekt aus der Datenbank wie folgt aus:
var reservation = db.Reservation.Where(r => r.Id == id).FirstOrDefault();
Also ich so etwas wie dies tun wollen:
db.TrainSeats.Where(ts => ts.Traveller_Id IN reservation.Travellers)
Dies wird eine NotSupportedException verursacht, die Nachricht ist: { "Kann nicht einen konstanten Wert des Typs 'erstellen Reisender ". In diesem Kontext werden nur primitive Typen oder Aufzählungstypen unterstützt. "} – Ferre12
Haben Sie die IDs ausgewählt? Sie müssen eine Skalareigenschaft auswählen, die' Contains' verwendet, wie ich in meiner Antwort zeige, in Ihrem Fall wären dies Reisender-IDs Der Fehler liegt darin, dass Sie Contains verwenden, die mit Entitäten anstelle des Skalarwerts – octavioccl
verglichen werden. Ich habe es funktioniert, es war eine andere Bedingung, die die Ausnahme verursacht hat. – Ferre12