mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-06 16:30:52 +08:00
update
1
更新日志.md
1
更新日志.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 方法;
|
||||
|
||||
43
表达式函数.md
43
表达式函数.md
@@ -51,6 +51,7 @@ var list2 = fsql.Select<T>()
|
||||
```
|
||||
|
||||
## Exists子表
|
||||
|
||||
```csharp
|
||||
var list2 = fsql.Select<T>()
|
||||
.Where(a => fsql.Select<T>()
|
||||
@@ -79,6 +80,20 @@ var t4 = fsql.Select<T>()
|
||||
|
||||
> SqlServer nvarchar/varchar 已兼容表达式解析,分别解析为:N'' 和 '',优化索引执行计划;
|
||||
|
||||
## 日期格式化
|
||||
|
||||
```csharp
|
||||
var t4 = fsql.Select<T>()
|
||||
.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<SysModule>()
|
||||
|
||||
```csharp
|
||||
var fsql = new FreeSqlBuilder() //请务必定义成 Singleton 单例模式
|
||||
.UseGenerateCommandParameterWithLambda(true)
|
||||
...
|
||||
.UseGenerateCommandParameterWithLambda(true)
|
||||
...
|
||||
|
||||
var id = 1;
|
||||
fsql.Select<Song>().Where(a => a.Id == id).ToList();
|
||||
@@ -139,28 +154,28 @@ fsql.Select<Song>().Where(a => a.Id == id).ToList();
|
||||
```csharp
|
||||
var name = "testname";
|
||||
fsql.Select<TestMySqlStringIsNullable>()
|
||||
.Where(a => a.varchar == name).ToList();
|
||||
.Where(a => a.varchar == name).ToList();
|
||||
|
||||
fsql.Select<TestMySqlStringIsNullable>()
|
||||
.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<ExpressionCallContext> context = new ThreadLocal<ExpressionCallContext>();
|
||||
static ThreadLocal<ExpressionCallContext> context = new ThreadLocal<ExpressionCallContext>();
|
||||
|
||||
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"];
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user