diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 312b0c42..68241282 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -130,13 +130,6 @@
清空状态数据
-
-
- 根据 lambda 条件删除数据
-
-
-
-
添加
@@ -532,14 +525,5 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
diff --git a/FreeSql.Tests/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs b/FreeSql.Tests/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs
index 85056d7b..151f01da 100644
--- a/FreeSql.Tests/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.PerformanceTests/MySqlAdoTest.cs
@@ -73,6 +73,42 @@ namespace FreeSql.Tests.PerformanceTest
time.Stop();
sb.AppendLine($"Elapsed: {time.Elapsed}; Query Dynamic Counts: {t3.Count}; ORM: FreeSql*");
+ var t411 = g.mysql.Select().Limit(1).ToList("id,title,url").FirstOrDefault();
+ var t412 = g.mysql.Select().Limit(1).Where(a => a.Id == t411.Id).ToList("id,url,title").FirstOrDefault();
+ var t413 = g.mysql.Select().Limit(1).Where(a => a.Id == t411.Id).ToList("id,title,url").FirstOrDefault();
+ var t414 = g.mysql.Select().Limit(1).Where(a => a.Id == t411.Id).ToList("id,url,title").FirstOrDefault();
+ var t415 = g.mysql.Select().Limit(1).Where(a => a.Id == t411.Id).ToList("url,title,id").FirstOrDefault();
+ var t416 = g.mysql.Select().Limit(1).Where(a => a.Id == t411.Id).ToList("title,url,id").FirstOrDefault();
+
+ Assert.Equal(t411.Title, t412.Title);
+ Assert.Equal(t412.Title, t413.Title);
+ Assert.Equal(t413.Title, t414.Title);
+ Assert.Equal(t414.Title, t415.Title);
+ Assert.Equal(t415.Title, t416.Title);
+
+ Assert.Equal(t411.Url, t412.Url);
+ Assert.Equal(t412.Url, t413.Url);
+ Assert.Equal(t413.Url, t414.Url);
+ Assert.Equal(t414.Url, t415.Url);
+ Assert.Equal(t415.Url, t416.Url);
+
+ Assert.Equal(t411.Id, t412.Id);
+ Assert.Equal(t412.Id, t413.Id);
+ Assert.Equal(t413.Id, t414.Id);
+ Assert.Equal(t414.Id, t415.Id);
+ Assert.Equal(t415.Id, t416.Id);
+ }
+ class xxx_dto1
+ {
+ public int Id { get; set; }
+ public string Title { get; set; }
+ public string Url { get; set; }
+ }
+ class xxx_dto2
+ {
+ public int Id { get; set; }
+ public string Url { get; set; }
+ public string Title { get; set; }
}
[Fact]
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs
index 113c8554..4ff5160c 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs
@@ -52,15 +52,20 @@ namespace FreeSql.Internal.CommonProvider
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
- var flagStr = $"ToListField:{field}";
Exception exception = null;
try
{
- _orm.Ado.ExecuteReader(_connection, _transaction, fetch =>
+ if (type.IsClass)
+ ret = _orm.Ado.Query(_connection, _transaction, CommandType.Text, sql, dbParms);
+ else
{
- var read = Utils.ExecuteArrayRowReadClassOrTuple(flagStr, type, null, fetch.Object, 0, _commonUtils);
- ret.Add((TTuple)read.Value);
- }, CommandType.Text, sql, dbParms);
+ var flagStr = $"ToListField:{field}";
+ _orm.Ado.ExecuteReader(_connection, _transaction, fetch =>
+ {
+ var read = Utils.ExecuteArrayRowReadClassOrTuple(flagStr, type, null, fetch.Object, 0, _commonUtils);
+ ret.Add((TTuple)read.Value);
+ }, CommandType.Text, sql, dbParms);
+ }
}
catch (Exception ex)
{
@@ -748,16 +753,21 @@ namespace FreeSql.Internal.CommonProvider
var before = new Aop.CurdBeforeEventArgs(_tables[0].Table.Type, _tables[0].Table, Aop.CurdType.Select, sql, dbParms);
_orm.Aop.CurdBeforeHandler?.Invoke(this, before);
var ret = new List();
- var flagStr = $"ToListField:{field}";
Exception exception = null;
try
{
- await _orm.Ado.ExecuteReaderAsync(_connection, _transaction, fetch =>
+ if (type.IsClass)
+ ret = await _orm.Ado.QueryAsync(_connection, _transaction, CommandType.Text, sql, dbParms);
+ else
{
- var read = Utils.ExecuteArrayRowReadClassOrTuple(flagStr, type, null, fetch.Object, 0, _commonUtils);
- ret.Add((TTuple)read.Value);
- return Task.FromResult(false);
- }, CommandType.Text, sql, dbParms);
+ var flagStr = $"ToListField:{field}";
+ await _orm.Ado.ExecuteReaderAsync(_connection, _transaction, fetch =>
+ {
+ var read = Utils.ExecuteArrayRowReadClassOrTuple(flagStr, type, null, fetch.Object, 0, _commonUtils);
+ ret.Add((TTuple)read.Value);
+ return Task.FromResult(false);
+ }, CommandType.Text, sql, dbParms);
+ }
}
catch (Exception ex)
{
diff --git a/readme.md b/readme.md
index ff4a56b6..a6db0eb8 100644
--- a/readme.md
+++ b/readme.md
@@ -187,7 +187,8 @@ QQ群:4336577(已满)、8578575(在线)
## 💕 Donation
-L*y 58元、花花 88元、麦兜很乖 50元、网络来者 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10元、⌒.Helper~..oO 66元、习惯与被习惯 100元、无名 100元、蔡易喋 88.88元、中讯科技 1000元、Good Good Work 24元、炽焰 6.6元、Nothing 100元、兰州天擎赵 500元、哈利路亚 300元
+L*y 58元、花花 88元、麦兜很乖 50元、网络来者 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10元、⌒.Helper~..oO 66元、习惯与被习惯 100元、无名 100元、蔡易喋 88.88元、中讯科技 1000元、Good Good Work 24元、炽焰 6.6元、Nothing 100元、兰州天擎赵 500元、哈利路亚 300元、
+无名 100元
> Thank you for your donation