mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-03 23:10:54 +08:00
update
2
更新日志.md
2
更新日志.md
@@ -3,6 +3,8 @@
|
||||
|
||||
## v0.12.10(预告)
|
||||
|
||||
- 增加 RawValueAttribute 实现自定义表达式时,使用原始值传入参数;
|
||||
- 增加 IEnumerable<(T1, T2)>.ContainsMany 扩展方法,实现自定义表达式解析多列无法 IN 的问题;
|
||||
- 修复 多表查询 WhereCascade,如果 Join 没有 On 条件,可能导致生成的 SQL 多了一个 AND 出错;
|
||||
|
||||
## v0.12.9
|
||||
|
||||
21
表达式函数.md
21
表达式函数.md
@@ -4,7 +4,7 @@ FreeSql 支持功能丰富的表达式函数解析,方便程序员在不了解
|
||||
|
||||
```csharp
|
||||
var t1 = fsql.Select<T>().Where(a => new[] { 1, 2, 3 }.Contains(a.Id)).ToSql();
|
||||
//SELECT ... FROM ..
|
||||
//SELECT .. FROM ..
|
||||
//WHERE (a.`Id` in (1,2,3))
|
||||
```
|
||||
|
||||
@@ -14,13 +14,28 @@ var t1 = fsql.Select<T>().Where(a => new[] { 1, 2, 3 }.Contains(a.Id)).ToSql();
|
||||
|
||||
现在:where id in (1..500) or id in (501..1000) or id in (1001..1333)
|
||||
|
||||
In 只能实现单列查询,多列怎么办?
|
||||
|
||||
```csharp
|
||||
List<(Guid, DateTime)> tupleList = new List<(Guid, DateTime)>();
|
||||
|
||||
tupleList.Add((Guid.NewGuid(), DateTime.Now));
|
||||
tupleList.Add((Guid.NewGuid(), DateTime.Now));
|
||||
tupleList.Add((Guid.NewGuid(), DateTime.Now));
|
||||
var t2 = fsql.Select<T>().Where(a => contains2linqarr.ContainsMany(a.Id, a.ct1)).ToSql();
|
||||
//SELECT .. FROM ..
|
||||
//WHERE (a."Id" = '685ee1f6-bdf6-4719-a291-c709b8a1378f' AND a."ct1" = '2019-12-07 23:55:27' OR
|
||||
//a."Id" = '5ecd838a-06a0-4c81-be43-1e77633b7404' AND a."ct1" = '2019-12-07 23:55:27' OR
|
||||
//a."Id" = 'b8b366f3-1c03-4547-9c96-d362dd5cae6a' AND a."ct1" = '2019-12-07 23:55:27')
|
||||
```
|
||||
|
||||
## 查找今天创建的数据
|
||||
|
||||
```csharp
|
||||
var t2 = fsql.Select<T>().Where(a => a.CreateTime.Date == DateTime.Now.Date).ToSql();
|
||||
var t3 = fsql.Select<T>().Where(a => a.CreateTime.Date == DateTime.Today).ToSql();
|
||||
//这行代码说明 FreeSql 表达式解析强大,不是所有 ORM 都支持
|
||||
|
||||
var t3 = fsql.Select<T>().Where(a => a.CreateTime.Between(DateTime.Today, DateTime.Today.AddDays(1))).ToSql();
|
||||
var t4 = fsql.Select<T>().Where(a => a.CreateTime.Between(DateTime.Today, DateTime.Today.AddDays(1))).ToSql();
|
||||
```
|
||||
|
||||
> SqlServer nvarchar/varchar 已兼容表达式解析,分别解析为:N'' 和 '',优化索引执行计划;
|
||||
|
||||
Reference in New Issue
Block a user