當不確定linq的語法時,該怎麼處理呢?

weixin_44220506 2021-02-22 05:43:53
我有一段如下的linq語法用來搜尋資料庫:

a => a.tdIsDelete != true && a.uStatus >= 0 && ((a.uLoginName != null && a.uLoginName.Contains(key)) || (a.uRealName != null && a.uRealName.Contains(key)))


其中,「uLoginName」及「uRealName」目前是or,但我希望依據用戶給予的參數來查詢。

例如:變數【bLoginName = true】而【變數bRealName=false】時,只確認uLoginName是否含包key,而不在乎uRealName是否有包含。

這時候我希望的linq語法如下:
a => a.tdIsDelete != true && a.uStatus >= 0 && ((a.uLoginName != null && a.uLoginName.Contains(key)))


請問我該怎麼做呢? 謝謝大家。
...全文
2827 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44220506 2021-03-15
  • 打赏
  • 举报
回复
謝謝回覆,後來選擇LinqKit解決了^^
正怒月神 2021-03-11
  • 打赏
  • 举报
回复
百度 dynamicLinq
兔子-顾问 2021-03-11
  • 打赏
  • 举报
回复
如果还觉得不够过瘾,可以动态编译c#代码,提供客户端编写脚本的可能。
兔子-顾问 2021-03-11
  • 打赏
  • 举报
回复
using System;
using System.Linq;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            //生成个随机数组
            Random rnd = new Random(Environment.TickCount);
            int[] test = Enumerable.Range(1, 10).OrderBy(i => rnd.Next()).ToArray();
            //文本,类似读取的配置
            string string_from_config_or_other = "客户A要求";
            //根据配置选择委托指向的方法
            Func< int,  bool> condition = null;
            if (string_from_config_or_other == "客户A要求")
            {
                condition = TrueCondition;
            }
            else
            {
                condition = FalseCondition;
            }

            //执行linq
            int[] result = test.OrderBy(i => condition(i)).ToArray();
            result.ToList().ForEach(i => Console.Write(i.ToString() + ","));
        }

        static bool TrueCondition(int a)
        {
            return a > 5;
        }

        static bool FalseCondition(int a)
        {
            return a <= 5;
        }
    }
}
兔子-顾问 2021-03-11
  • 打赏
  • 举报
回复
这里的判断条件,你都可以换成函数调用,既然是函数调用,你就可以用根据参数来传入合适的委托了。

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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