我正在 asp.net 应用程序中构建搜索功能,并且正在使用 LINQ to SQL 根据所选搜索条件检索数据。搜索条件是
- 国家
- 城市
- 区
- 房间的数量
- 租金周期
只有第一个搜索条件 Country 是必填字段。但是,如果用户输入了标准 2、3、4 和/或 5 的值,则应考虑输入的值,并且只检索与所有输入的搜索标准匹配的结果。请注意,如果条件 2、3、4 和/或 5 之一为空(null),则 LINQ 应充当“DONT CARE”并返回该行。
例如,如果输入的条件是:
- 国家 = 美国
- 城市 = 空
- 区=空
- 房间数 = null
- 租金周期 = null
然后应返回 Country == USA 的所有行。
另一个例子:
- 国家 = 英国
- 城市 = 空
- 区=空
- 房间数 = 5
- 租金周期 = null
然后应返回 Country == UK 和 NumberOfRooms == 5 的所有行。
如何在 LINQ to SQL 中实现这一点?
这是我到目前为止所拥有的:
var data = from x in db.Units where x.Country == coutnryID && /*PLEASE HELP!*/ select x;