Bitter.Core 内置了支持大部分的 linq 的条件表达式。基本上符合我们 where 条件所需。Bitter.Core 的支持 表达式内置 扩展 有:
- EndsWith 在Sql 解析成: ‘%s’
- StartsWith 在Sql 解析成: ‘s%’
- Contains 在Sql 解析成: ‘%s%’
- In 在Sql 解析成: IN (1,2,34)
- NotIn 在Sql 解析成: NOT IN (1,2,34)
- IsNull 在Sql 解析成: ISNUL(dbfiled,0)
- Like 在Sql 解析成: Like‘%s%’
- NotLike 在Sql 解析成: Not Like‘%s%’
- >= 在Sql 解析成: >=
- <= 在Sql 解析成: <=
- > 在Sql 解析成: >
- < 在Sql 解析成: <
- = 在Sql 解析成: =
- != 在Sql 解析成: !=
- && 在Sql 解析成: and (….)
- || 在Sql 解析成: (….) || (…)
下面附上条件表达式如下demo 所示:
static void Main(string[] args) { Console.WriteLine("Hello World!"); MonitorInfo monitor_end = db.FindQuery<TStudentInfo>().Where(p => p.FName.EndsWith("h")).ToMonitorInfo(); MonitorInfo monitor_start = db.FindQuery<TStudentInfo>().Where(p => p.FName.StartsWith("j")).ToMonitorInfo(); MonitorInfo monitor_contains = db.FindQuery<TStudentInfo>().Where(p => p.FName.Contains("h")).ToMonitorInfo(); MonitorInfo monitor_in = db.FindQuery<TStudentInfo>().Where(p => p.FAage.In(new int?[] { 1,2,3,4})).ToMonitorInfo(); MonitorInfo monitor_notin = db.FindQuery<TStudentInfo>().Where(p => p.FAage.NotIn(new int?[] { 1, 2, 3, 4 })).ToMonitorInfo(); MonitorInfo monitor_isnull_str = db.FindQuery<TStudentInfo>().Where(p => p.FName.IsNull("")).ToMonitorInfo(); MonitorInfo monitor_isnull_int = db.FindQuery<TStudentInfo>().Where(p => p.FAage.IsNull(-1)).ToMonitorInfo(); MonitorInfo monitor_like = db.FindQuery<TStudentInfo>().Where(p => p.FName.Like("h")).ToMonitorInfo(); MonitorInfo monitor_Notlike = db.FindQuery<TStudentInfo>().Where(p => p.FName.NotLike("h")).ToMonitorInfo(); MonitorInfo monitor_ThanEquel = db.FindQuery<TStudentInfo>().Where(p => p.FAage>=10).ToMonitorInfo(); MonitorInfo monitor_LessThanEquel = db.FindQuery<TStudentInfo>().Where(p => p.FAage <=10).ToMonitorInfo(); MonitorInfo monitor_And = db.FindQuery<TStudentInfo>().Where(p => p.FAage <= 10 && p.FAage<=20).ToMonitorInfo(); MonitorInfo monitor_And_And = db.FindQuery<TStudentInfo>().Where(p =>p.FName.Like("h")&&(p.FAage <= 10 && p.FAage <= 20)).ToMonitorInfo(); MonitorInfo monitor_And_And_And = db.FindQuery<TStudentInfo>().Where(p => p.FName.Like("h") && (p.FAage <= 10 && p.FAage <= 20)).Where(p=>p.FAddTime>"2020-10-11".ToSafeDateTime()).ToMonitorInfo(); var k= Console.ReadKey(); }