我正在尝试在我的 asp.net WebAPI 中构建一个方法,以根据传递给该方法的参数来获取数据。该方法用于对餐厅数据执行搜索。我有一个名为“type”的变量,它决定了执行的数据搜索的类型。第二个变量“关键字”是用户搜索的关键字。我的 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;
}