2

説明に多数の文字列が存在するかどうかをテストする IQueryable を動的に構築しようとしています。

SQL を使用すると、複数の OR ステートメントを使用することで簡単に実現できます。

しかし、LINQを使用してこれを行うにはどうすればよいですか?

これまでの私のコードは次のとおりです...

List<string> keywords = new List<string>() { "BMW", "M3" };

IQueryable<AuctionVehicle> Results =
                from a in DBContext.tbl_Auction
                join v in DBContext.tbl_Vehicle on a.VehicleID equals v.VehicleID
                where v.Fuel.Equals(Fuel)
                && v.Transmission.Equals(Transmission)
                && a.EndDate < DateTime.Now
                select new AuctionVehicle()
                {
                    DB_Auction = a,
                    DB_Vehicle = v
                };

// Keywords
if (keywords.Count == 1)
{
    Results = Results.Where(x => x.DB_Auction.Description.Contains(keywords[0]));
}
else if (keywords.Count > 1)
{
    // ****************************
    // How can i add multiple OR statements??
    // ****************************
    Results = Results.Where(x => x.DB_Auction.Description.Contains(keywords[0]));
    foreach (string keyword in keywords)
    {
        Results = Results.Where(x => x.DB_Auction.Description.Contains(keyword));
    }
}

return Results;
4

1 に答える 1