項目中常常用到組合條件查詢,根據用戶配置的查詢條件進行搜索,拼接SQL容易形成SQL注入,普通的LINQ能夠用表達式樹來完成,但也比較麻煩。有個System.Linq.Dynamic用起來比較方便。spa
NuGet:code
Install-Package System.Linq.Dynamic
大體的用法是這樣的:blog
//NULL類型判斷 var query = dbContext.sys_user.Where("userid!=null").OrderBy("id desc"); //整形的查詢 var query = dbContext.sys_user.Where("id>0").OrderBy("id desc"); //整形的查詢 帶參數 var query = dbContext.sys_user.Where("id>@0", 2).OrderBy("id desc"); //字符型查詢 var query = dbContext.sys_user.Where("username=\"張三\").OrderBy("id desc"); //like查詢 var query = dbContext.sys_user.Where("username.Contains(\"key\")").OrderBy("id desc"); //日期類型 var query = dbContext.sys_user.Where("createtime <= @0", DateTime.Now).OrderBy("id desc"); //組合條件 var query = dbContext.sys_user.Where("id>0 and username=\"張三\"").OrderBy("id desc");