从实体框架存储过程的下拉列表中处理 NULL
本文关键字:处理 NULL 下拉列表 实体 框架 存储过程 | 更新日期: 2023-09-27 18:33:17
我在存储过程中返回的空值时遇到问题。 我有一个下拉列表,我希望它最初是空白的,但随后包含唯一的街道类型。 这样,用户可以将该字段留空以返回所有结果,或者开始键入并从确实存在的可能条目中获取建议。
该列表是从存储过程中检索的唯一街道类型,该存储过程仅对所有地址的主表执行 DISTINCT 查询。 但是,我在结果中得到一个 NULL,一旦达到该空,我的下拉列表似乎就会停止显示结果。
我使用的是实体框架并添加了返回一组字符串的存储过程,然后使用以下代码填充组合框。 如果我在存储的进程中不留下任何排序,则 null 位于中间的某个地方,我得到一半的结果,如果我排序它,所以 null 是第一位的,我的组合框中没有结果。
SideSewerDAL.SideSewerEntities entities = new SideSewerDAL.SideSewerEntities();
comboType.DataSource = entities.GetUniqueStreetTypes();
那么我做错了吗? 我是否应该摆脱存储程序中的 NULL 并以某种方式修复组合框以添加"空白"条目? 或者保留 NULL,但以某种方式使组合框处理空值而不是阻塞! 这是存储过程的代码
public ObjectResult<global::System.String> GetUniqueStreetTypes()
{
return base.ExecuteFunction<global::System.String>("GetUniqueStreetTypes");
}
如果存储过程返回字符串列表,则可以创建字符串列表,添加 " 值,然后添加从 sproc 返回的范围。
List<string> values = new List<string>();
values.Add("");
values.AddRange(entities.GetUniqueStreetTypes());
comboType.DataSource = values;
至于处理空值,最好的解决方案可能是包括"WHERE stType 不是空">