このコードをリファクタリングして、関数に渡される値がnullの場合は不要なWHEREとJOINを省略できるようにする方法はありますか(このコードはすべてのパラメータが渡されてもうまくいきます) "SearchItems"および "ItemDistance"関数は、フルテキスト検索および距離計算をそれぞれ実行するためのテーブルレベルの関数です。初心者のためLinq 2 Sql動的クエリ
public IQueryable<ItemSearchResult> Search(string keywords, int? category, float? latitude, float? longitude)
{
return from item in _db.Items
join searchItems in _db.SearchItems(keywords)
on item.ItemId equals searchItems.ItemId
join itemDistance in _db.ItemDistance(latitude.Value, longitude.Value)
on item.ItemId equals itemDistance.ItemId
where item.Category == category.Value
select new ItemSearchResult()
{
Item = item,
Distance = itemDistance.Distance
};
}
null可能なパラメータを持つ質問が更新されました –