メソッドで渡された引数に基づいてデータを取得するために、asp.net WebAPI でメソッドを構築しようとしています。このメソッドは、レストラン データの検索を実行するために使用されます。実行されるデータ検索のタイプを決定する「type」という変数があります。2 番目の変数「keyword」は、ユーザーが検索したキーワードです。LINQ クエリの WHERE 条件は型に依存し、動的にする必要があるため、LINQ クエリの外部で別の変数を使用して条件を定義しました。この変数を LINQ クエリの WHERE ステートメントに割り当てようとしましたが、うまくいかないようです。誰かがそれを手伝ってくれますか?私はこれで数日間立ち往生しています
public IQueryable<RestaurantView> GetRestaurantsForSearch(string keyword, int type, string location)
{
//
var condition = "";
if(type == 1)
{
condition = "x.RestaurantName.Contains(keyword)";
} else if(type == 2){
condition = "x.Cuisine.Equals(keyword)";
}
else {
condition = "x.Rating.Equals(keyword)";
}
var query = from x in db.Restaurants
join y in db.Cuisine on x.RestaurantCuisine equals y.CuisineID
where condition
select new RestaurantView
{
RestaurantID = x.RestaurantID,
RestaurantName = x.RestaurantName,
RestaurantCuisine = y.CuisineName,
RestaurantDecription = x.RestaurantDecription
};
return query;
}