mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-13 03:40:57 +08:00
update
1
更新日志.md
1
更新日志.md
@@ -12,6 +12,7 @@
|
|||||||
- 修复 Enum 类型无元素时的错误;
|
- 修复 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);**
|
- **增加 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);**
|
- **增加 ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互)[wiki](https://github.com/dotnetcore/FreeSql/wiki/%E6%9F%A5%E8%AF%A2);**
|
||||||
|
- **增加 MySql/SqlServer 表达式解析 yyyyMMdd 常用 c# 日期格式化;**
|
||||||
- 增加 WhereCascade/GlobalFilter 表达式子查询的支持;
|
- 增加 WhereCascade/GlobalFilter 表达式子查询的支持;
|
||||||
- 增加 \[Description\] 元数据注释,优先级低于 c# 代码注释;
|
- 增加 \[Description\] 元数据注释,优先级低于 c# 代码注释;
|
||||||
- 增加 IUpdate.SetIf 方法;
|
- 增加 IUpdate.SetIf 方法;
|
||||||
|
|||||||
43
表达式函数.md
43
表达式函数.md
@@ -51,6 +51,7 @@ var list2 = fsql.Select<T>()
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Exists子表
|
## Exists子表
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
var list2 = fsql.Select<T>()
|
var list2 = fsql.Select<T>()
|
||||||
.Where(a => fsql.Select<T>()
|
.Where(a => fsql.Select<T>()
|
||||||
@@ -79,6 +80,20 @@ var t4 = fsql.Select<T>()
|
|||||||
|
|
||||||
> SqlServer nvarchar/varchar 已兼容表达式解析,分别解析为:N'' 和 '',优化索引执行计划;
|
> 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
|
```csharp
|
||||||
@@ -122,8 +137,8 @@ var sql1 = fsql.Select<SysModule>()
|
|||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
var fsql = new FreeSqlBuilder() //请务必定义成 Singleton 单例模式
|
var fsql = new FreeSqlBuilder() //请务必定义成 Singleton 单例模式
|
||||||
.UseGenerateCommandParameterWithLambda(true)
|
.UseGenerateCommandParameterWithLambda(true)
|
||||||
...
|
...
|
||||||
|
|
||||||
var id = 1;
|
var id = 1;
|
||||||
fsql.Select<Song>().Where(a => a.Id == id).ToList();
|
fsql.Select<Song>().Where(a => a.Id == id).ToList();
|
||||||
@@ -139,28 +154,28 @@ fsql.Select<Song>().Where(a => a.Id == id).ToList();
|
|||||||
```csharp
|
```csharp
|
||||||
var name = "testname";
|
var name = "testname";
|
||||||
fsql.Select<TestMySqlStringIsNullable>()
|
fsql.Select<TestMySqlStringIsNullable>()
|
||||||
.Where(a => a.varchar == name).ToList();
|
.Where(a => a.varchar == name).ToList();
|
||||||
|
|
||||||
fsql.Select<TestMySqlStringIsNullable>()
|
fsql.Select<TestMySqlStringIsNullable>()
|
||||||
.Where(a => a.varchar == name.SetDbParameter(10)).ToList();
|
.Where(a => a.varchar == name.SetDbParameter(10)).ToList();
|
||||||
|
|
||||||
public class TestMySqlStringIsNullable {
|
public class TestMySqlStringIsNullable {
|
||||||
public Guid id { get; set; }
|
public Guid id { get; set; }
|
||||||
|
|
||||||
[Column(DbType = "varchar(100)")]
|
[Column(DbType = "varchar(100)")]
|
||||||
public string varchar { get; set; }
|
public string varchar { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
[ExpressionCall]
|
[ExpressionCall]
|
||||||
public static class DbFunc {
|
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)
|
public static string SetDbParameter(this string that, int size)
|
||||||
{
|
{
|
||||||
if (context.Value.DbParameter != null)
|
if (context.Value.DbParameter != null)
|
||||||
context.Value.DbParameter.Size = size;
|
context.Value.DbParameter.Size = size;
|
||||||
return context.Value.ParsedContent["that"];
|
return context.Value.ParsedContent["that"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user