Hallo ich ein Array von Featureset Id haben, hat meine Fahrzeuge Tisch Unter Tabelle als FeatureSets bekam Ich schrieb SQL-Abfrage wieLinqToSql Sub Entiity Multiple und Betreiber
SELECT [t0].[ID]
FROM [dbo].[SearchResultView] AS [t0]
Join [dbo].[VehicleFeatureSet] AS [t1] on t0.ID = t1.VehicleID
where t1.FeatureSetID = 1 and t1.FeatureSetID= 2 and t1.FeatureSetID= 3
habe ich versucht. Aber ich konnte nicht
var features = Request.QueryString["FeatureSets"].Split(',').ToList().ConvertAll(new Converter<string, int>(StrinToint));
IQueryable<SearchResultView> result = db.SearchResultViews.Where(m => m.Active == true);
foreach (var featuree in features)
{
result = result.Where(m => m.VehicleFeatureSets.Any(c => c.FeatureSetID == featuree));
}
Wie kann ich diese LINQ-Abfrage
Wie von Mattytommo angegeben, enthält Ihre SQL-Abfrage ein Prädikat, das immer falsch ist ('t1.FeatureSetID = 1 und ...'). Das Lustige ist, ich denke, Ihre linq macht genau das, was Sie erreichen wollen, aber natürlich ist das produzierte SQL anders. Ich denke, es enthält 'EXISTS', aber es soll sie enthalten. Dies unter der Annahme, dass Sie 'SearchResultView'-Datensätze mit _both_ 1 _und_ 2 _and_ 3 in ihren' VehicleFeatureSets' haben möchten. –