Linq where 条件拼接查询问题

小蚂蚁工作室 2016-07-12 02:28:43
SELECT *
FROM [D8Mall_db].[dbo].[pro_sku]
where [pro_sku_arrspe] like '%国内组装%'or [pro_sku_arrspe] like '%黑晶%'
or [pro_sku_arrspe] like '%13%'
or [pro_sku_arrspe] like '%19%'
or [pro_sku_arrspe] like '%测试%'
GO



如何EF+Linq编程实现
...全文
333 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2016-07-12
  • 打赏
  • 举报
回复

var result = from s in pro_sku
                 where s.pro_sku_arrspe.Contains("国内组装") 
                          || s.pro_sku_arrspe.Contains("黑晶") 
                          || s.pro_sku_arrspe.Contains("13")
                          || s.pro_sku_arrspe.Contains("19") 
                          || s.pro_sku_arrspe.Contains("测试")  
                 select s;
小蚂蚁工作室 2016-07-12
  • 打赏
  • 举报
回复
已经找到方案
/// <summary>
        /// 输出拼接字符串
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="options"></param>
        /// <param name="fieldName"></param>
        /// <returns></returns>
        public static Expression<Func<T, bool>> GetConditionExpression<T>(string[] options, string fieldName)
        {
            ParameterExpression left = Expression.Parameter(typeof(T), "c");//c=>
            Expression expression = Expression.Constant(true);
            foreach (var optionName in options)
            {
                Expression right = Expression.Call
                       (
                          Expression.Property(left, typeof(T).GetProperty(fieldName)),  //c.DataSourceName
                          typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),// 反射使用.Contains()方法                         
                         Expression.Constant(optionName)         // .Contains(optionName)
                       );
                expression = Expression.And(right, expression);//c.DataSourceName.contain("") || c.DataSourceName.contain("") 
            }
            Expression<Func<T, bool>> finalExpression
                = Expression.Lambda<Func<T, bool>>(expression, new ParameterExpression[] { left });
            return finalExpression;
        }
正怒月神 版主 2016-07-12
  • 打赏
  • 举报
回复
3楼正确 我写反了


            var q = pl.Where(x => x.pro_sku_arrspe.Contains("黑晶")
                || x.pro_sku_arrspe.Contains("国内组装")
                || x.pro_sku_arrspe.Contains("13")
                || x.pro_sku_arrspe.Contains("19")
                || x.pro_sku_arrspe.Contains("测试"));
正怒月神 版主 2016-07-12
  • 打赏
  • 举报
回复
string[] str = { "黑晶", "国内组装", "13", "19", "测试" };

            var q=pl.Where(x=>str.Contains(x.pro_sku_arrspe));
Dene-wang 2016-07-12
  • 打赏
  • 举报
回复
var q = db.pro_sku .Where(s => s.pro_sku_arrspe.Contains(str1) ||s.pro_sku_arrspe.Contains(str2) ||s.pro_sku_arrspe.Contains(str3) ||s.pro_sku_arrspe.Contains(str4) ||s.pro_sku_arrspe.Contains(str5) ) ? 难道这样?
小蚂蚁工作室 2016-07-12
  • 打赏
  • 举报
回复
坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊
小蚂蚁工作室 2016-07-12
  • 打赏
  • 举报
回复
坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊 坐等,急啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧