Anwenden von LINQ-Filtern basierend auf einem mehrdimensionalen Array
Gegeben eine Entity Framework-Abfrage, wie z. B.
var query = (from property in _dbContext.Properties
join location in _db.Locations
on property.Id equals location.PropertyId
select new PropertyDetail
{
Url = property.Url,
Type = property.Type,
Title = property.Title,
Continent = location.Continent,
Country = location.Country,
State = location.State,
});
Ich habe Filter angewendet wie:
if (!string.IsNullOrWhitespace(searchFilters.Type))
{
query = query.Where(model => model.Type == searchFilters.Type);
}
if (!string.IsNullOrWhitespace(searchFilters.Title))
{
query = query.Where(model => model.Title.Contains(searchFilters.Title));
}
Geben Sie das folgende mehrdimensionale Array
var locations = new[]
{
new[] {"Africa", "Algeria", ""},
new[] {"Asia", "Hong Kong", ""},
new[] {"Asia", "Singapore", ""},
new[] {"Oceania", "Australia", "New South Wales"},
new[] {"North America", "United States", "California"}
};
Wie kann die "Abfrage" weiter eingeschränkt werden, um nur die Einträge einzuschließen, die den angegebenen Orten entsprechen {Kontinent, Land, Bundesstaat (optional)}?