C# linq示例如下:

var s = db.DD_TKSQJLB .Join(db.DD_YYMXB, a => a.YYMXID, b => b.ID, (a, b) => new { DD_TKSQJLB = a, DD_YYMXB = b }) .Join(db.DD_JBXX, a => a.DD_TKSQJLB.DDID, b => b.DDID, (a, b) => new { a.DD_TKSQJLB, a.DD_YYMXB, DD_JBXX = b, DD_JBXX_BM = new KK_DD_JBXX_BM() }); if (search.QYID != 0 && search.QYID != null) { s = s.Join(db.DD_JBXX_BM, a => a.DD_JBXX.DDID, b => b.DDID, (a, b) => new { a.DD_TKSQJLB, a.DD_YYMXB, a.DD_JBXX, DD_JBXX_BM = b }); } var s1 = s.Where(t => t.DD_JBXX.DDLY == 36) .WhereIF(!string.IsNullOrEmpty(search.DDID), t => t.DD_TKSQJLB.DDID.Contains(search.DDID)) .WhereIF(search.RefundType.HasValue, t => t.DD_TKSQJLB.TKLX == search.RefundType.Value) .WhereIF(!string.IsNullOrEmpty(search.UserName), t => t.DD_YYMXB.XM.Contains(search.UserName)) .WhereIF(!string.IsNullOrEmpty(search.Tel), t => t.DD_YYMXB.DH.Contains(search.Tel)) .WhereIF(search.RefundStartTime.HasValue, t => t.DD_TKSQJLB.TKSQSJ >= search.RefundStartTime.Value) .WhereIF(search.RefundEndTime.HasValue, t => t.DD_TKSQJLB.TKSQSJ < search.RefundEndTime.Value.Date.AddDays(1)) .WhereIF(search.RefundStatus.HasValue && search.RefundStatus.Value == KKRefundStatus.JGNolaunch, t => t.DD_TKSQJLB.TKZT == 0 && t.DD_TKSQJLB.JGSHZT == 0) .WhereIF(search.RefundStatus.HasValue && search.RefundStatus.Value == KKRefundStatus.JGAudit, t => t.DD_TKSQJLB.TKZT == 0 && t.DD_TKSQJLB.JGSHZT == 1) .WhereIF(search.RefundStatus.HasValue && search.RefundStatus.Value == KKRefundStatus.JGAuditFaild, t => t.DD_TKSQJLB.TKZT == 0 && t.DD_TKSQJLB.JGSHZT == 2) .WhereIF(search.RefundStatus.HasValue && search.RefundStatus.Value == KKRefundStatus.CWRefunding, t => t.DD_TKSQJLB.TKZT == 1) .WhereIF(search.RefundStatus.HasValue && search.RefundStatus.Value == KKRefundStatus.CWRefunded, t => t.DD_TKSQJLB.TKZT == 2) .WhereIF(search.RefundStatus.HasValue && search.RefundStatus.Value == KKRefundStatus.KKNoAudit, t => t.DD_TKSQJLB.TKZT == 5) .WhereIF(!string.IsNullOrEmpty(search.JGID), t => t.DD_YYMXB.TJJGID == search.JGID) .WhereIF(!string.IsNullOrEmpty(search.ChannelMC) && search.ChannelNo != cDal.GetSuperChannelNo(), t => t.DD_JBXX.TJ_MC == search.ChannelMC) .WhereIF(search.QYID != 0 && search.QYID != null, t => t.DD_JBXX_BM.TJ_QYID == search.QYID) .Select(t => new KK_RefundRecordModel() { RefundID = t.DD_TKSQJLB.ID, DDID = t.DD_TKSQJLB.DDID, DDZE = t.DD_TKSQJLB.DDZE, JGSHZT = t.DD_TKSQJLB.JGSHZT, JSZT = t.DD_YYMXB.JSZT, PaymentMethod = t.DD_JBXX.PaymentMethod ?? 0, TKFS = t.DD_TKSQJLB.TKFS, TKJE = t.DD_TKSQJLB.TKJE ?? 0, TKLSH = t.DD_TKSQJLB.TKLSH, TKLX = t.DD_TKSQJLB.TKLX, TKRESULT = t.DD_TKSQJLB.TKRESULT, TKSM = t.DD_TKSQJLB.TKSM, TKSQCZR = t.DD_TKSQJLB.TKSQCZR, TKSQSJ = t.DD_TKSQJLB.TKSQSJ, TKSXF = t.DD_TKSQJLB.TKSXF, TKYY = t.DD_TKSQJLB.TKYY, TKZT = t.DD_TKSQJLB.TKZT, TKZTXGSJ = t.DD_TKSQJLB.TKZTXGSJ, YLTK = t.DD_TKSQJLB.YLTK, YYMXID = t.DD_TKSQJLB.YYMXID, UserName = t.DD_YYMXB.XM, Tel = t.DD_YYMXB.DH, CertNo = t.DD_YYMXB.SFZHM, TJMC = t.DD_JBXX.TJ_MC, TJJGID = t.DD_JBXX.TJJGID, TCID = t.DD_YYMXB.TCID, EnterprisePayMoney = t.DD_JBXX.TJ_QYJE ?? 0, StaffPayMoney = t.DD_JBXX.TJ_GRJE ?? 0, TJTKLX = t.DD_TKSQJLB.TJTKLX }); return s1;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!