登录
首页 » C# » C# Linq 动态查询条件 的 两种实现方式 (PredicateExtensions 和 Dynamic)

C# Linq 动态查询条件 的 两种实现方式 (PredicateExtensions 和 Dynamic)

于 2013-11-16 发布
0 134
下载积分: 1 下载次数: 0

代码说明:

优选方案是:PredicateExtensions  很方便,很强大 调用示例:public static void Test3() { DbDataContext db = new DbDataContext(); Expression expressleft = PredicateExtensions.True(); expressleft = expressleft.Or(t => t.CategoriesID > 3); Expression expressright = PredicateExtensions.False(); expressright = expressright.Or(t => t.CategoriesID < 5); expressleft = expressleft.And(expressright); var sql = db.GetCommand(db.TemplateDocument.Where(expressleft).Select(t => new { t.TemplateID, t.TemplateName, t.CategoriesID })).CommandText; Console.WriteLine(sql); }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# RichTextBox 操作(可插入图片/更改字体/获取Rtf Codes)
    C# RichTextBox 常用操作(可插入图片/更改字体/获取Rtf Codes)
    2013-09-17下载
    积分:1
  • C# 获取指定目录下(含子文件夹)指定后缀的所有文件路径 示例源码下载
    调用示例:FileAccess fa = new FileAccess();System.Collections.ArrayList filesPath = fa.GetAllFileName(@"C:inetpubwwwrootwww_baidu002_com",".html");
    2013-11-06下载
    积分:1
  • asp.net防刷新(F5) 禁止重复提交 实例(附完整源码)
    实现了用户操作时 刷新导致的重复操作问题。 实现原理如下:   使用一个上下文唯一的票据号,该票据号随页面提交或回发而递增,每当用户与服务器端交互时,代码会提取上次的票据号码并与当前票据号码比较,如果当前票据大于上次的票据,则是提交或回发,否则则识别为刷新。     这种方式会用到HttpMoudel,并在其中操作Session。   使用方法如下:   1、引入dll MsdnExt 压缩包中有2.修改web.config,在 添加以下item:               其中“MsdnModule”是一个名字, “Msdn.RefreshModule”是“Msdn”下的“RefreshModule”类型,“MsdnExt”是程序集的名字 3.引入命名空间 using Msdn; 并修改页面类继承Msdn.Page 4.使用代码  代码:  protected void Button1_Click(object sender, EventArgs e) { if (!IsPageRefresh) Response.Write("按钮事件"); else Response.Write("页面刷新");TrackRefreshState();} MSDNPage.cs 核心代码如下:using System;using System.Web.UI;using System.Web;using System.Text;namespace Msdn{ public class Page : System.Web.UI.Page { #region Constants // *********************************************************** // Constants public const string RefreshTicketCounter = "RefreshTicketCounter"; private const string SetFocusFunctionName = "__setFocus"; private const string SetFocusScriptName = "__inputFocusHandler"; // *********************************************************** #endregion // *********************************************************** // Ctor public Page() { m_focusedControl = ""; // Register a PreRender handler this.PreRender = new EventHandler(RefreshPage_PreRender); } // *********************************************************** // ************************************************************** // Indicates if the page is being viewed in response to F5 hit public bool IsPageRefresh { get { object o = HttpContext.Current.Items[RefreshAction.PageRefreshEntry]; if (o == null) return false; return (bool) o; } } // ************************************************************** // ************************************************************** // Increase the internal counter used to generate refresh tickets public void TrackRefreshState() { InitRefreshState(); int ticket = Convert.ToInt32(Session[RefreshTicketCounter]) 1; Session[RefreshTicketCounter] = ticket; } // ************************************************************** // ************************************************************** // Set the control with the input focus public void SetFocus(string ctlId) { m_focusedControl = ctlId; } // ************************************************************** #region Private Members // ************************************************************** // Create the hidden field to store the current request ticket private void SaveRefreshState() { int ticket = Convert.ToInt32(Session[RefreshTicketCounter]) 1; RegisterHiddenField(RefreshAction.CurrentRefreshTicketEntry, ticket.ToString()); } // ************************************************************** // ************************************************************** // Ensure that the ticket counter is initialized private void InitRefreshState() { if (Session[RefreshTicketCounter] == null) Session[RefreshTicketCounter] = 0; } // ************************************************************** // ************************************************************** // Handle the PreRender event private void RefreshPage_PreRender(object sender, EventArgs e) { SaveRefreshState(); AddSetFocusScript(); } // ************************************************************** // ************************************************************** // Add any script code required for the SetFocus feature private void AddSetFocusScript() { if (m_focusedControl == "") return; // Add the script to declare the function // (Only one form in ASP.NET pages) StringBuilder sb = new StringBuilder(""); sb.Append(""); sb.Append("function "); sb.Append(SetFocusFunctionName); sb.Append("(ctl) {"); sb.Append(" if (document.forms[0][ctl] != null)"); sb.Append(" {document.forms[0][ctl].focus();}"); sb.Append("}"); // Add the script to call the function sb.Append(SetFocusFunctionName); sb.Append("(); sb.Append(m_focusedControl); sb.Append();"); // Register the script (names are CASE-SENSITIVE) if (!IsStartupScriptRegistered(SetFocusScriptName)) RegisterStartupScript(SetFocusScriptName, sb.ToString()); } // ************************************************************** #endregion #region Private Properties // *********************************************************** // Private properties private string m_focusedControl; // *********************************************************** #endregion }}  
    2021-03-16 17:39:21下载
    积分:1
  • JQuery+ajax 批量上传图片(附完整源码)
    JQuery+ajax 批量上传图片(附完整源码)
    2013-12-02下载
    积分:1
  • Asp.Net 实现与 Ucenter通信,整合后可实现账号同步登陆、登出
    Asp.Net 实现与 Ucenter通信,整合后可实现账号同步登陆、登出
    2014-04-03下载
    积分:1
  • C# winform DES加密解密
    C# winform DES加密解密
    2014-09-23下载
    积分:1
  • asp.net 做的 blog程序源码下载
    asp.net 做的 blog程序源码下载
    2013-11-29下载
    积分:1
  • winform身份证号批量生成器
    winform身份证号批量生成器
    2015-01-24下载
    积分:1
  • 二维表
    二维表
    2013-07-01下载
    积分:1
  • asp.net 多线程下载 支持 断点续传
    asp.net 多线程下载 支持 断点续传
    2013-11-04下载
    积分:1
  • 696518资源总数
  • 105549会员总数
  • 12今日下载