mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 修复 ISelect ToList<T>("id,title") 属性和字段顺序不同时的问题;
This commit is contained in:
parent
309b4ba60a
commit
113a5d3092
@ -130,13 +130,6 @@
|
||||
清空状态数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
根据 lambda 条件删除数据
|
||||
</summary>
|
||||
<param name="predicate"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||
<summary>
|
||||
添加
|
||||
@ -532,14 +525,5 @@
|
||||
<param name="that"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
|
||||
<summary>
|
||||
批量注入 Repository,可以参考代码自行调整
|
||||
</summary>
|
||||
<param name="services"></param>
|
||||
<param name="globalDataFilter"></param>
|
||||
<param name="assemblies"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
@ -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<xxx>().Limit(1).ToList<xxx_dto1>("id,title,url").FirstOrDefault();
|
||||
var t412 = g.mysql.Select<xxx>().Limit(1).Where(a => a.Id == t411.Id).ToList<xxx_dto1>("id,url,title").FirstOrDefault();
|
||||
var t413 = g.mysql.Select<xxx>().Limit(1).Where(a => a.Id == t411.Id).ToList<xxx_dto2>("id,title,url").FirstOrDefault();
|
||||
var t414 = g.mysql.Select<xxx>().Limit(1).Where(a => a.Id == t411.Id).ToList<xxx_dto2>("id,url,title").FirstOrDefault();
|
||||
var t415 = g.mysql.Select<xxx>().Limit(1).Where(a => a.Id == t411.Id).ToList<xxx_dto2>("url,title,id").FirstOrDefault();
|
||||
var t416 = g.mysql.Select<xxx>().Limit(1).Where(a => a.Id == t411.Id).ToList<xxx_dto2>("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]
|
||||
|
@ -52,16 +52,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<TTuple>();
|
||||
var flagStr = $"ToListField:{field}";
|
||||
Exception exception = null;
|
||||
try
|
||||
{
|
||||
if (type.IsClass)
|
||||
ret = _orm.Ado.Query<TTuple>(_connection, _transaction, CommandType.Text, sql, dbParms);
|
||||
else
|
||||
{
|
||||
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)
|
||||
{
|
||||
exception = ex;
|
||||
@ -748,10 +753,14 @@ 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<TTuple>();
|
||||
var flagStr = $"ToListField:{field}";
|
||||
Exception exception = null;
|
||||
try
|
||||
{
|
||||
if (type.IsClass)
|
||||
ret = await _orm.Ado.QueryAsync<TTuple>(_connection, _transaction, CommandType.Text, sql, dbParms);
|
||||
else
|
||||
{
|
||||
var flagStr = $"ToListField:{field}";
|
||||
await _orm.Ado.ExecuteReaderAsync(_connection, _transaction, fetch =>
|
||||
{
|
||||
var read = Utils.ExecuteArrayRowReadClassOrTuple(flagStr, type, null, fetch.Object, 0, _commonUtils);
|
||||
@ -759,6 +768,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
return Task.FromResult(false);
|
||||
}, CommandType.Text, sql, dbParms);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
exception = ex;
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user