使用存储过程时,查询结果不能被多次枚举

编程语言

我试图用存储过程替换视图以基于关键字搜索结果。但是当我传递关键字时会引发错误

查询结果不能被多次枚举

但如果将关键字留空,则效果很好。以下是我获取搜索结果的方法。在这种情况下,谁能提供有关如何枚举结果的建议?

public IEnumerable <BrandNameToIngredient> GetBrandNameToIngMapResults(string Keyword)
{
    IEnumerable<BrandNameToIngredient> lstBrandNametoIng = from map in DB.USP_BRANDNAME_INGREDIENT_MAP()                                                           
                      select new BrandNameToIngredient
                             {
                                 IngredientBrandNameMapID=map.INGREDIENT_PRODUCT_MAP_ID,                            
                                 BrandName = map.FDA_BRAND_NAME,             //From Table 1              
                                 PFCName = map.PFC_DESC==null?"":map.PFC_DESC,  //From Table 1                        
                                 IngredientName = map.INGREDIENT_NAME,       //From Table 2
                                 HCIngredientName = map.HC_INGREDIENT_NAME,   //From Table 2                              
                                 KeywordfromPage = Keyword
                             };

    if (!string.IsNullOrEmpty(Keyword))
    {
        lstBrandNametoIng = lstBrandNametoIng.Where(x => x.BrandName.ToLower().Contains(x.KeywordfromPage.ToLower())        //Able to get result                                                  
                                                        || x.PFCName.ToLower().Contains(x.KeywordfromPage.ToLower())            //Able to get result

                                                        || x.IngredientName.ToLower().Contains(x.KeywordfromPage.ToLower())     //Error Here
                                                        || x.HCIngredientName.ToLower().Contains(x.KeywordfromPage.ToLower())); //Error Here
    }

    return lstBrandNametoIng;
}
苛刻

最好先对查询进行操作,然后最后返回可枚举。

public IEnumerable<BrandNameToIngredient> GetBrandNameToIngMapResults(string Keyword)
{
    var brandNametoIngQuery = DB.USP_BRANDNAME_INGREDIENT_MAP()
                             .Where(x => string.IsNullOrEmpty(Keyword) 
                                        || x.BrandName.Contains(Keyword, StringComparison.OrdinalIgnoreCase)        
                                        || x.PFCName.Contains(Keyword, StringComparison.OrdinalIgnoreCase)           
                                        || x.IngredientName.Contains(Keyword, StringComparison.OrdinalIgnoreCase)     
                                        || x.HCIngredientName.Contains(Keyword, StringComparison.OrdinalIgnoreCase))
                             .Select(map=> new BrandNameToIngredient
                             {
                                  IngredientBrandNameMapID = map.INGREDIENT_PRODUCT_MAP_ID,
                                  BrandName = map.FDA_BRAND_NAME,             //From Table 1              
                                  PFCName = map.PFC_DESC == null ? "" : map.PFC_DESC,  //From Table 1                        
                                  IngredientName = map.INGREDIENT_NAME,       //From Table 2
                                  HCIngredientName = map.HC_INGREDIENT_NAME,   //From Table 2                              
                                  KeywordfromPage = Keyword
                              }).AsEnumerable();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查询结果不能被多次枚举(C#)(实体框架)(存储过程)

在Mvc视图中获取查询的错误结果不能多次枚举

EF存储过程结果的枚举

使用存储过程进行多次插入查询NOT WORKING

使用存储过程或查询

使用cfscript new StoredProc()时如何获取存储过程的结果

使用postgresql存储过程将整个查询结果存储在变量中

使用存储过程选择查询

使用 Dapper 多次执行存储过程?

将查询放入存储过程中时,SQL Server将不会返回结果

使用实体框架 6 将枚举值传递给存储过程时出现异常

为什么在查询产生结果的情况下,为什么不能在存储过程deleteByMonth中插入表变量?

如何使用存储过程将选择查询结果插入到表中

您可以缓存在存储过程中重复使用的子查询的结果吗?

如何在ado.net中使用输出参数并选择SQL Server存储过程的查询结果?

获取存储过程的结果并在我的代码后面的SQL查询中使用

如何使用Perl获得存储过程结果?

使用Linq筛选存储过程的结果

在另一个带有动态查询的存储过程中使用带有动态查询的存储过程的结果

存储过程可以重用临时表,但原始查询不能

在MYSQL存储过程中循环选择查询结果集

SQL设置变量作为存储过程中查询的结果

重用存储过程中的SELECT查询结果

为什么我的存储过程查询返回额外的结果?

查询返回设计器中的结果,但不返回存储过程

查询在存储过程的 POSTGRESQL 中没有结果数据的目标

来自存储过程的结果不同于SSMS查询

将 SQL 查询结果传递给存储过程参数

使用参数和查询的MySQL存储过程