从实体框架存储过程的下拉列表中处理 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");
    }

从实体框架存储过程的下拉列表中处理 NULL

如果存储过程返回字符串列表,则可以创建字符串列表,添加 " 值,然后添加从 sproc 返回的范围。

List<string> values = new List<string>();
values.Add("");
values.AddRange(entities.GetUniqueStreetTypes());
comboType.DataSource = values;

至于处理空值,最好的解决方案可能是包括"WHERE stType 不是空">