diff --git a/更新日志.md b/更新日志.md index cd2e0a7..285d1c5 100644 --- a/更新日志.md +++ b/更新日志.md @@ -20,6 +20,9 @@ - 增加 ISelectGrouping 分组查询总量的方法 .Count(); - 兼容 Vb.Net 无法使用 IncludeMany 的问题; - 兼容 Vb.Net 无法使用 int? 类型 = 等号表达式解析; +- 优化 实体基类的属性位置,优先排在最前面; +- 整理 实体类 Ctor 有构造函数的映射处理;[wiki](https://github.com/2881099/FreeSql/wiki/%e8%bf%94%e5%9b%9e%e6%95%b0%e6%8d%ae#dto-%E6%98%A0%E5%B0%84%E6%9F%A5%E8%AF%A2) +- 优化 实体属性,支持 protected set 属性; ## v0.12.21 diff --git a/贪婪加载.md b/贪婪加载.md index cfea2d2..9b859ea 100644 --- a/贪婪加载.md +++ b/贪婪加载.md @@ -9,16 +9,28 @@ Select().Limit(10).ToList(); Select().Limit(10).ToList(a => new TestDto { id = a.Id, name = a.Title }); //相当于先映射 TestDto,再映射 a.Id, a.Title //注意:v0.11.6 以前的版本是只映射 a.Id, a.Title -//注意:v0.11.20 如果 new 查询的就本实体,则不附加所有字段 +//注意:v0.11.20 如果 new 本实体,则不附加所有字段 fsql.Select().ToList(a => new DTO { xxx = a.ext }) -//这样写,附加所有映射,再额外映射 xxx +//情况1:附加所有映射,再额外映射 ext,返回 List fsql.Select().ToList(a => new Song { id = a.id }) -//这样写,只查询 id +//情况2:只查询 id,返回 List fsql.Select().ToList(a => new { id = a.id }) -//这样写,只查询 id,返回匿名对象 +//情况3:只查询 id,返回 List<匿名对象> + +fsql.Select().ToList(a => new DTO(a.id)) +//情况4:只查询 id,返回 List + +fsql.Select().ToList(a => new DTO(a.id) { xxx = a.ext }) +//情况5:查询 id, ext,返回 List + +fsql.Select().ToList(a => new Song(a.id)) +//情况6:查询 id,返回 List + +fsql.Select().ToList(a => new Song(a.id) { xxx = a.ext }) +//情况7:查询 id, ext,返回 List ``` 这种映射支持单表/多表,在查询数据之前映射(不是先查询所有字段再到内存映射) diff --git a/返回数据.md b/返回数据.md index b173f8e..0c13684 100644 --- a/返回数据.md +++ b/返回数据.md @@ -143,16 +143,28 @@ Select().Limit(10).ToList(); Select().Limit(10).ToList(a => new TestDto { id = a.Id, name = a.Title }); //相当于先映射 TestDto,再映射 a.Id, a.Title //注意:v0.11.6 以前的版本是只映射 a.Id, a.Title -//注意:v0.11.20 如果 new 查询的就本实体,则不附加所有字段 +//注意:v0.11.20 如果 new 本实体,则不附加所有字段 fsql.Select().ToList(a => new DTO { xxx = a.ext }) -//这样写,附加所有映射,再额外映射 xxx +//情况1:附加所有映射,再额外映射 ext,返回 List fsql.Select().ToList(a => new Song { id = a.id }) -//这样写,只查询 id +//情况2:只查询 id,返回 List fsql.Select().ToList(a => new { id = a.id }) -//这样写,只查询 id,返回匿名对象 +//情况3:只查询 id,返回 List<匿名对象> + +fsql.Select().ToList(a => new DTO(a.id)) +//情况4:只查询 id,返回 List + +fsql.Select().ToList(a => new DTO(a.id) { xxx = a.ext }) +//情况5:查询 id, ext,返回 List + +fsql.Select().ToList(a => new Song(a.id)) +//情况6:查询 id,返回 List + +fsql.Select().ToList(a => new Song(a.id) { xxx = a.ext }) +//情况7:查询 id, ext,返回 List ``` 这种映射支持单表/多表,在查询数据之前映射(不是先查询所有字段再到内存映射) diff --git a/骚操作.md b/骚操作.md index 8a8e5da..d240a0a 100644 --- a/骚操作.md +++ b/骚操作.md @@ -81,13 +81,25 @@ A, B, C 都有 id,Dto { id, a1, a2, b1, b2 },A.id 被映射。也可以指 ```csharp fsql.Select().ToList(a => new DTO { xxx = a.ext }) -//这样写,附加所有映射,再额外映射 xxx +//情况1:附加所有映射,再额外映射 ext,返回 List fsql.Select().ToList(a => new Song { id = a.id }) -//这样写,只查询 id +//情况2:只查询 id,返回 List fsql.Select().ToList(a => new { id = a.id }) -//这样写,只查询 id,返回匿名对象 +//情况3:只查询 id,返回 List<匿名对象> + +fsql.Select().ToList(a => new DTO(a.id)) +//情况4:只查询 id,返回 List + +fsql.Select().ToList(a => new DTO(a.id) { xxx = a.ext }) +//情况5:查询 id, ext,返回 List + +fsql.Select().ToList(a => new Song(a.id)) +//情况6:查询 id,返回 List + +fsql.Select().ToList(a => new Song(a.id) { xxx = a.ext }) +//情况7:查询 id, ext,返回 List ``` ---