这需要一些设置来解释。我知道数据库中的“nulls是坏的”,我遇到了为什么会这样,但我没有选择业务使用数据源的方式。数据源在数据集中有空值,我必须按原样使用它。 (希望这能解决预期的“好吧,你的数据集不应该有空...”或“你为什么不删除空值......?”
假设我有这样的样本集,其中“NULL”是实际的null:
Campus | Name | Relationship --------------------------------- A | Bob | Relationship 1 B | Bill | NULL B | Carol | Relationship 2 C | Sally | Relationship 1
现在假设我使用选项列表按Relationship
列中不同的值列表过滤结果:
如果我没有“全部”选项,那就足够了:
private IEnumerable<RwsBasePhonesAndAddress> PopulateQuery(string SelectedCampus,
string SelectedRelationship)
{
IEnumerable<RwsBasePhonesAndAddress> query =
db.RwsBasePhonesAndAddresses.Where(m => m.Campus == SelectedCampus);
if (!string.IsNullOrEmpty(SelectedRelationship))
query = query.Where(m => m.Relationship == SelectedRelationship);
else
query = query.Where(m => m.Relationship == null);
query = query.OrderBy(m => m.StudentName).AsEnumerable();
return query;
}
我已经验证了写入的代码返回与“SelectedRelationship”参数匹配的结果,包括选择“NULL”作为过滤器时的“NULL”记录。
在选项列表中包含“全部”会使这很困难。如果“Relationship”列没有空值,我可以使用null SelectedRelationship
参数作为“不要过滤'SelectedRelationship'”选项。
有什么方法可以在代码中使用“不过滤”选项吗?
答案 0 :(得分:2)
不完全确定我理解这个问题。从我的理解到上面的代码,你错过了如果你得到一个&#34; All&#34;价值然后不过滤掉任何东西。对?如果是这样的话:
PendingIntent