From 4ec638670af613bd2f33988b4d3897a2e551f506 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sun, 24 May 2020 02:53:36 +0800 Subject: [PATCH] update --- 更新日志.md | 1 + 表达式函数.md | 43 +++++++++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/更新日志.md b/更新日志.md index 06b8c2c..3e8a2e1 100644 --- a/更新日志.md +++ b/更新日志.md @@ -12,6 +12,7 @@ - 修复 Enum 类型无元素时的错误; - **增加 IFreeSql.InsertOrUpdate 方法 [wiki](https://github.com/dotnetcore/FreeSql/wiki/%E6%B7%BB%E5%8A%A0%E6%88%96%E4%BF%AE%E6%94%B9);** - **增加 ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互)[wiki](https://github.com/dotnetcore/FreeSql/wiki/%E6%9F%A5%E8%AF%A2);** +- **增加 MySql/SqlServer 表达式解析 yyyyMMdd 常用 c# 日期格式化;** - 增加 WhereCascade/GlobalFilter 表达式子查询的支持; - 增加 \[Description\] 元数据注释,优先级低于 c# 代码注释; - 增加 IUpdate.SetIf 方法; diff --git a/表达式函数.md b/表达式函数.md index 5076929..d6f80c3 100644 --- a/表达式函数.md +++ b/表达式函数.md @@ -51,6 +51,7 @@ var list2 = fsql.Select() ``` ## Exists子表 + ```csharp var list2 = fsql.Select() .Where(a => fsql.Select() @@ -79,6 +80,20 @@ var t4 = fsql.Select() > SqlServer nvarchar/varchar 已兼容表达式解析,分别解析为:N'' 和 '',优化索引执行计划; +## 日期格式化 + +```csharp +var t4 = fsql.Select() + .First(a => a.CreateTime.ToString("HH:mm:ss"); +// SELECT date_format(a.`CreateTime`, '%H:%i:%s') as1 +// FROM `xxx` a +// limit 0,1 +``` + +> v1.5.0 支持了常用 c# 日期格式化,yyyy MM dd HH mm ss yy M d H hh h m s tt t + +> tt t 为 AM PM + ## 自定义解析 ```csharp @@ -122,8 +137,8 @@ var sql1 = fsql.Select() ```csharp var fsql = new FreeSqlBuilder() //请务必定义成 Singleton 单例模式 - .UseGenerateCommandParameterWithLambda(true) - ... + .UseGenerateCommandParameterWithLambda(true) + ... var id = 1; fsql.Select().Where(a => a.Id == id).ToList(); @@ -139,28 +154,28 @@ fsql.Select().Where(a => a.Id == id).ToList(); ```csharp var name = "testname"; fsql.Select() - .Where(a => a.varchar == name).ToList(); + .Where(a => a.varchar == name).ToList(); fsql.Select() - .Where(a => a.varchar == name.SetDbParameter(10)).ToList(); + .Where(a => a.varchar == name.SetDbParameter(10)).ToList(); public class TestMySqlStringIsNullable { - public Guid id { get; set; } + public Guid id { get; set; } - [Column(DbType = "varchar(100)")] - public string varchar { get; set; } + [Column(DbType = "varchar(100)")] + public string varchar { get; set; } } [ExpressionCall] public static class DbFunc { - static ThreadLocal context = new ThreadLocal(); + static ThreadLocal context = new ThreadLocal(); - public static string SetDbParameter(this string that, int size) - { - if (context.Value.DbParameter != null) - context.Value.DbParameter.Size = size; - return context.Value.ParsedContent["that"]; - } + public static string SetDbParameter(this string that, int size) + { + if (context.Value.DbParameter != null) + context.Value.DbParameter.Size = size; + return context.Value.ParsedContent["that"]; + } } ```