Ich muss anstelle von Enthält gleich verwenden. Ich habe eine Reihe von Codes genannt selectedDeviceTypeIDs i annehmen, dass es zwei Codes hat {1,2}LINQ gleich anstelle von Enthält
ich aus der Abfrage führen müssen, wenn Geräte-IDs sind genau {1,2} so habe ich selectedDeviceTypeIDs.Contains mit selectedDeviceTypeIDs ersetzen .equal oder so ähnlich ...
m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID)
if (DeviceTypeIDs != null)
{
Guid[] selectedDeviceTypeIDs = DeviceTypeIDs.Split(',').Select(Guid.Parse).ToArray();
query = query.Where(j => j.HospitalDepartments.Any(jj => jj.Units.Any(m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID)))));
}
warum verwenden Sie nicht Schleife und überprüfen Sie für gleiche Daten? – Bharat
@Bharat Da würde es erforderlich sein, den gesamten Datensatz in den Speicher zu bringen, und das sieht für mich wie eine Entity Framework-Abfrage aus. – DavidG
Normalerweise teste ich für nicht gleich mit einer Zählung von 0 was bedeutet, dass alles übereinstimmt. Benutze auch das Where ((x, i) => .... So etwas wie where ((j, i) => (j.HospitalDepartments! = SelectedDeviceTypeIDs [i])). Count == 0 – jdweng