提交 8340096d 编写于 作者: s0611163's avatar s0611163

v2.0.7 支持QueryList<dynamic>即返回值List<dynamic>类型; 移除接口的where T : new()限制,以支持QueryList<string>

上级 5945cfe9
......@@ -62,7 +62,7 @@ namespace LiteSql
/// <summary>
/// 创建SqlString对象
/// </summary>
ISqlString<T> Sql<T>(string sql = null, params object[] args) where T : new();
ISqlString<T> Sql<T>(string sql = null, params object[] args);
#endregion
#region 创建SqlQueryable对象
......@@ -70,7 +70,7 @@ namespace LiteSql
/// 创建IQueryable
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
ISqlQueryable<T> Queryable<T>() where T : new();
ISqlQueryable<T> Queryable<T>();
#endregion
#region 查询下一个ID
......
......@@ -6,9 +6,9 @@
<Nullable>disable</Nullable>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<Title>LiteSql</Title>
<AssemblyVersion>2.0.6</AssemblyVersion>
<FileVersion>2.0.6</FileVersion>
<Version>2.0.6</Version>
<AssemblyVersion>2.0.7</AssemblyVersion>
<FileVersion>2.0.7</FileVersion>
<Version>2.0.7</Version>
<PackageId>LiteSql</PackageId>
<PackageProjectUrl>https://github.com/0611163/LiteSql</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
......@@ -20,12 +20,13 @@
</Description>
<PackageReleaseNotes>
更新内容:
1. IDbSession接口增加Tran(当前数据库会话的事务)和Conn(当前数据库会话的数据库连接)属性
2. IDbSession接口的BeginTransaction方法不再返回DbTransaction对象
1. 支持QueryList<dynamic>即返回值List<dynamic>类型
2. 移除接口的where T : new()限制,以支持QueryList<string>
</PackageReleaseNotes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.ComponentModel.Annotations" Version="4.7.0" />
</ItemGroup>
......
......@@ -156,7 +156,7 @@ namespace LiteSql
/// <summary>
/// 创建SqlString对象
/// </summary>
public ISqlString<T> Sql<T>(string sql = null, params object[] args) where T : new()
public ISqlString<T> Sql<T>(string sql = null, params object[] args)
{
var session = GetSession();
return session.Sql<T>(sql, args);
......@@ -168,7 +168,7 @@ namespace LiteSql
/// 创建IQueryable
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
public ISqlQueryable<T> Queryable<T>() where T : new()
public ISqlQueryable<T> Queryable<T>()
{
var session = GetSession();
return session.Queryable<T>();
......
......@@ -135,7 +135,7 @@ namespace LiteSql
/// <summary>
/// 创建SqlString对象
/// </summary>
public ISqlString<T> Sql<T>(string sql = null, params object[] args) where T : new()
public ISqlString<T> Sql<T>(string sql = null, params object[] args)
{
return new SqlString<T>(_provider, this, sql, args);
}
......@@ -146,7 +146,7 @@ namespace LiteSql
/// 创建IQueryable
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
public ISqlQueryable<T> Queryable<T>() where T : new()
public ISqlQueryable<T> Queryable<T>()
{
SqlQueryable<T> sqlString = new SqlQueryable<T>(_provider, this, null);
return sqlString.Queryable();
......
......@@ -16,7 +16,7 @@ namespace LiteSql
/// <summary>
/// 根据Id查询实体
/// </summary>
public T QueryById<T>(object id) where T : new()
public T QueryById<T>(object id)
{
Type type = typeof(T);
......@@ -45,7 +45,7 @@ namespace LiteSql
/// <summary>
/// 根据Id查询实体
/// </summary>
public async Task<T> QueryByIdAsync<T>(object id) where T : new()
public async Task<T> QueryByIdAsync<T>(object id)
{
Type type = typeof(T);
......@@ -75,7 +75,7 @@ namespace LiteSql
/// <summary>
/// 根据sql查询实体
/// </summary>
public T Query<T>(string sql) where T : new()
public T Query<T>(string sql)
{
Type type = typeof(T);
object result = Find(type, sql, null);
......@@ -95,7 +95,7 @@ namespace LiteSql
/// <summary>
/// 根据sql查询实体
/// </summary>
public async Task<T> QueryAsync<T>(string sql) where T : new()
public async Task<T> QueryAsync<T>(string sql)
{
Type type = typeof(T);
object result = await FindAsync(type, sql, null);
......@@ -116,7 +116,7 @@ namespace LiteSql
/// <summary>
/// 根据sql查询实体
/// </summary>
public T Query<T>(string sql, DbParameter[] args) where T : new()
public T Query<T>(string sql, DbParameter[] args)
{
Type type = typeof(T);
object result = Find(type, sql, args);
......@@ -136,7 +136,7 @@ namespace LiteSql
/// <summary>
/// 根据sql查询实体
/// </summary>
public async Task<T> QueryAsync<T>(string sql, DbParameter[] args) where T : new()
public async Task<T> QueryAsync<T>(string sql, DbParameter[] args)
{
Type type = typeof(T);
object result = await FindAsync(type, sql, args);
......@@ -157,7 +157,7 @@ namespace LiteSql
/// <summary>
/// 根据sql查询实体
/// </summary>
public T Query<T>(ISqlString sql) where T : new()
public T Query<T>(ISqlString sql)
{
return Query<T>(sql.SQL, sql.Params);
}
......@@ -165,7 +165,7 @@ namespace LiteSql
/// <summary>
/// 根据sql查询实体
/// </summary>
public Task<T> QueryAsync<T>(ISqlString sql) where T : new()
public Task<T> QueryAsync<T>(ISqlString sql)
{
return QueryAsync<T>(sql.SQL, sql.Params);
}
......
......@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Dynamic;
using System.Linq;
using System.Reflection;
using System.Text;
......@@ -15,7 +16,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public List<T> QueryList<T>(string sql) where T : new()
public List<T> QueryList<T>(string sql)
{
SqlFilter(ref sql);
OnExecuting?.Invoke(sql, null);
......@@ -42,7 +43,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public async Task<List<T>> QueryListAsync<T>(string sql) where T : new()
public async Task<List<T>> QueryListAsync<T>(string sql)
{
SqlFilter(ref sql);
OnExecuting?.Invoke(sql, null);
......@@ -70,7 +71,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public List<T> QueryList<T>(string sql, DbParameter[] cmdParms) where T : new()
public List<T> QueryList<T>(string sql, DbParameter[] cmdParms)
{
OnExecuting?.Invoke(sql, cmdParms);
......@@ -96,7 +97,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public async Task<List<T>> QueryListAsync<T>(string sql, DbParameter[] cmdParms) where T : new()
public async Task<List<T>> QueryListAsync<T>(string sql, DbParameter[] cmdParms)
{
OnExecuting?.Invoke(sql, cmdParms);
......@@ -122,7 +123,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public List<T> QueryList<T>(ISqlString sql) where T : new()
public List<T> QueryList<T>(ISqlString sql)
{
return QueryList<T>(sql.SQL, sql.Params);
}
......@@ -130,7 +131,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public Task<List<T>> QueryListAsync<T>(ISqlString sql) where T : new()
public Task<List<T>> QueryListAsync<T>(ISqlString sql)
{
return QueryListAsync<T>(sql.SQL, sql.Params);
}
......@@ -141,7 +142,7 @@ namespace LiteSql
/// <summary>
/// DataReaderToList
/// </summary>
private List<T> DataReaderToList<T>(IDataReader rd) where T : new()
private List<T> DataReaderToList<T>(IDataReader rd)
{
List<T> list = new List<T>();
......@@ -159,6 +160,31 @@ namespace LiteSql
list.Add((T)rd[0]);
}
}
else if (typeof(T) == typeof(object)) //支持QueryList<dynamic>即返回值List<dynamic>类型
{
int fcnt = rd.FieldCount;
Dictionary<string, int> fields = new Dictionary<string, int>();
for (int i = 0; i < fcnt; i++)
{
string field = rd.GetName(i);
if (!fields.ContainsKey(field))
{
fields.Add(field, i);
}
}
while (rd.Read())
{
dynamic obj = new ExpandoObject();
foreach (string field in fields.Keys)
{
((IDictionary<string, object>)obj).Add(field, rd[fields[field]]);
}
list.Add(obj);
}
}
else
{
PropertyInfoEx[] propertyInfoList = GetEntityProperties(typeof(T));
......
......@@ -14,7 +14,7 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
public List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage) where T : new()
public List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage)
{
sql = _provider.CreatePageSql(sql, orderby, pageSize, currentPage);
......@@ -26,7 +26,7 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
public async Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage) where T : new()
public async Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage)
{
sql = _provider.CreatePageSql(sql, orderby, pageSize, currentPage);
......@@ -38,7 +38,7 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
public List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms) where T : new()
public List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms)
{
sql = _provider.CreatePageSql(sql, orderby, pageSize, currentPage);
......@@ -48,7 +48,7 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
public async Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms) where T : new()
public async Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms)
{
sql = _provider.CreatePageSql(sql, orderby, pageSize, currentPage);
......@@ -60,7 +60,7 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
public List<T> QueryPage<T>(ISqlString sql, string orderby, int pageSize, int currentPage) where T : new()
public List<T> QueryPage<T>(ISqlString sql, string orderby, int pageSize, int currentPage)
{
return QueryPage<T>(sql.SQL, orderby, pageSize, currentPage, sql.Params);
}
......@@ -68,7 +68,7 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
public Task<List<T>> QueryPageAsync<T>(ISqlString sql, string orderby, int pageSize, int currentPage) where T : new()
public Task<List<T>> QueryPageAsync<T>(ISqlString sql, string orderby, int pageSize, int currentPage)
{
return QueryPageAsync<T>(sql.SQL, orderby, pageSize, currentPage, sql.Params);
}
......
......@@ -23,7 +23,7 @@ namespace LiteSql
/// <summary>
/// 附加更新前的旧实体,只更新数据发生变化的字段
/// </summary>
public void AttachOld<T>(T obj) where T : new()
public void AttachOld<T>(T obj)
{
if (_oldObjs.ContainsKey(obj))
{
......@@ -42,7 +42,7 @@ namespace LiteSql
/// <summary>
/// 附加更新前的旧实体,只更新数据发生变化的字段
/// </summary>
public void AttachOld<T>(List<T> objList) where T : new()
public void AttachOld<T>(List<T> objList)
{
foreach (T obj in objList)
{
......
......@@ -45,7 +45,7 @@ namespace LiteSql
/// <summary>
/// 创建SqlString对象
/// </summary>
ISqlString<T> Sql<T>(string sql = null, params object[] args) where T : new();
ISqlString<T> Sql<T>(string sql = null, params object[] args);
#endregion
#region 创建SqlQueryable对象
......@@ -53,7 +53,7 @@ namespace LiteSql
/// 创建IQueryable
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
ISqlQueryable<T> Queryable<T>() where T : new();
ISqlQueryable<T> Queryable<T>();
#endregion
#region 查询下一个ID
......
......@@ -13,48 +13,48 @@ namespace LiteSql
/// <summary>
/// 根据Id查询实体
/// </summary>
T QueryById<T>(object id) where T : new();
T QueryById<T>(object id);
/// <summary>
/// 根据Id查询实体
/// </summary>
Task<T> QueryByIdAsync<T>(object id) where T : new();
Task<T> QueryByIdAsync<T>(object id);
#endregion
#region 根据sql查询实体
/// <summary>
/// 根据sql查询实体
/// </summary>
T Query<T>(string sql) where T : new();
T Query<T>(string sql);
/// <summary>
/// 根据sql查询实体
/// </summary>
Task<T> QueryAsync<T>(string sql) where T : new();
Task<T> QueryAsync<T>(string sql);
#endregion
#region 根据sql查询实体(参数化查询)
/// <summary>
/// 根据sql查询实体
/// </summary>
T Query<T>(string sql, DbParameter[] args) where T : new();
T Query<T>(string sql, DbParameter[] args);
/// <summary>
/// 根据sql查询实体
/// </summary>
Task<T> QueryAsync<T>(string sql, DbParameter[] args) where T : new();
Task<T> QueryAsync<T>(string sql, DbParameter[] args);
#endregion
#region 根据sql查询实体(SqlString)
/// <summary>
/// 根据sql查询实体
/// </summary>
T Query<T>(ISqlString sql) where T : new();
T Query<T>(ISqlString sql);
/// <summary>
/// 根据sql查询实体
/// </summary>
Task<T> QueryAsync<T>(ISqlString sql) where T : new();
Task<T> QueryAsync<T>(ISqlString sql);
#endregion
}
......
......@@ -13,36 +13,36 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
List<T> QueryList<T>(string sql) where T : new();
List<T> QueryList<T>(string sql);
/// <summary>
/// 查询列表
/// </summary>
Task<List<T>> QueryListAsync<T>(string sql) where T : new();
Task<List<T>> QueryListAsync<T>(string sql);
#endregion
#region 查询列表(参数化查询)
/// <summary>
/// 查询列表
/// </summary>
List<T> QueryList<T>(string sql, DbParameter[] cmdParms) where T : new();
List<T> QueryList<T>(string sql, DbParameter[] cmdParms);
/// <summary>
/// 查询列表
/// </summary>
Task<List<T>> QueryListAsync<T>(string sql, DbParameter[] cmdParms) where T : new();
Task<List<T>> QueryListAsync<T>(string sql, DbParameter[] cmdParms);
#endregion
#region 查询列表(SqlString)
/// <summary>
/// 查询列表
/// </summary>
List<T> QueryList<T>(ISqlString sql) where T : new();
List<T> QueryList<T>(ISqlString sql);
/// <summary>
/// 查询列表
/// </summary>
Task<List<T>> QueryListAsync<T>(ISqlString sql) where T : new();
Task<List<T>> QueryListAsync<T>(ISqlString sql);
#endregion
}
......
......@@ -14,36 +14,36 @@ namespace LiteSql
/// <summary>
/// 分页查询列表
/// </summary>
List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage) where T : new();
List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage);
/// <summary>
/// 分页查询列表
/// </summary>
Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage) where T : new();
Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage);
#endregion
#region 分页查询列表(参数化查询)
/// <summary>
/// 分页查询列表
/// </summary>
List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms) where T : new();
List<T> QueryPage<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms);
/// <summary>
/// 分页查询列表
/// </summary>
Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms) where T : new();
Task<List<T>> QueryPageAsync<T>(string sql, string orderby, int pageSize, int currentPage, DbParameter[] cmdParms);
#endregion
#region 分页查询列表(SqlString)
/// <summary>
/// 分页查询列表
/// </summary>
List<T> QueryPage<T>(ISqlString sql, string orderby, int pageSize, int currentPage) where T : new();
List<T> QueryPage<T>(ISqlString sql, string orderby, int pageSize, int currentPage);
/// <summary>
/// 分页查询列表
/// </summary>
Task<List<T>> QueryPageAsync<T>(ISqlString sql, string orderby, int pageSize, int currentPage) where T : new();
Task<List<T>> QueryPageAsync<T>(ISqlString sql, string orderby, int pageSize, int currentPage);
#endregion
}
......
......@@ -41,11 +41,11 @@ namespace LiteSql
/// <summary>
/// 附加更新前的旧数据,只更新数据发生变化的字段
/// </summary>
void AttachOld<T>(T obj) where T : new();
void AttachOld<T>(T obj);
/// <summary>
/// 附加更新前的旧数据,只更新数据发生变化的字段
/// </summary>
void AttachOld<T>(List<T> objList) where T : new();
void AttachOld<T>(List<T> objList);
}
}
......@@ -13,7 +13,7 @@ namespace LiteSql
/// <summary>
/// 查询接口
/// </summary>
public interface ISqlQueryable<T> where T : new()
public interface ISqlQueryable<T>
{
#region 变量
/// <summary>
......
......@@ -164,32 +164,32 @@ namespace LiteSql
/// <summary>
/// 返回第一行的值,不存在则返回null
/// </summary>
T First<T>() where T : new();
T First<T>();
/// <summary>
/// 返回第一行的值,不存在则返回null
/// </summary>
Task<T> FirstAsync<T>() where T : new();
Task<T> FirstAsync<T>();
/// <summary>
/// 查询列表
/// </summary>
List<T> ToList<T>() where T : new();
List<T> ToList<T>();
/// <summary>
/// 查询列表
/// </summary>
Task<List<T>> ToListAsync<T>() where T : new();
Task<List<T>> ToListAsync<T>();
/// <summary>
/// 分页查询
/// </summary>
List<T> ToPageList<T>(string orderby, int pageSize, int currentPage) where T : new();
List<T> ToPageList<T>(string orderby, int pageSize, int currentPage);
/// <summary>
/// 分页查询
/// </summary>
Task<List<T>> ToPageListAsync<T>(string orderby, int pageSize, int currentPage) where T : new();
Task<List<T>> ToPageListAsync<T>(string orderby, int pageSize, int currentPage);
/// <summary>
/// 条件删除
......@@ -277,37 +277,37 @@ namespace LiteSql
/// 查询实体
/// </summary>
[Obsolete]
T Query<T>() where T : new();
T Query<T>();
/// <summary>
/// 查询实体
/// </summary>
[Obsolete]
Task<T> QueryAsync<T>() where T : new();
Task<T> QueryAsync<T>();
/// <summary>
/// 查询列表
/// </summary>
[Obsolete]
List<T> QueryList<T>() where T : new();
List<T> QueryList<T>();
/// <summary>
/// 查询列表
/// </summary>
[Obsolete]
Task<List<T>> QueryListAsync<T>() where T : new();
Task<List<T>> QueryListAsync<T>();
/// <summary>
/// 分页查询
/// </summary>
[Obsolete]
List<T> QueryPage<T>(string orderby, int pageSize, int currentPage) where T : new();
List<T> QueryPage<T>(string orderby, int pageSize, int currentPage);
/// <summary>
/// 分页查询
/// </summary>
[Obsolete]
Task<List<T>> QueryPageAsync<T>(string orderby, int pageSize, int currentPage) where T : new();
Task<List<T>> QueryPageAsync<T>(string orderby, int pageSize, int currentPage);
/// <summary>
/// 条件删除
......
......@@ -12,7 +12,7 @@ namespace LiteSql
/// <summary>
/// SQL字符串类
/// </summary>
public class SqlQueryable<T> : ISqlQueryable<T> where T : new()
public class SqlQueryable<T> : ISqlQueryable<T>
{
#region 变量
private SqlString _sqlString;
......
......@@ -15,7 +15,7 @@ namespace LiteSql
/// <summary>
/// 参数化查询SQL字符串
/// </summary>
public class SqlString<T> : SqlString, ISqlString<T> where T : new()
public class SqlString<T> : SqlString, ISqlString<T>
{
#region 构造函数
public SqlString(IProvider provider, IDbSession session, string sql = null, params object[] args) : base(provider, session, sql, args)
......@@ -614,7 +614,7 @@ namespace LiteSql
/// <summary>
/// 返回第一行的值,不存在则返回null
/// </summary>
public T First<T>() where T : new()
public T First<T>()
{
return _session.Query<T>(this);
}
......@@ -622,7 +622,7 @@ namespace LiteSql
/// <summary>
/// 返回第一行的值,不存在则返回null
/// </summary>
public Task<T> FirstAsync<T>() where T : new()
public Task<T> FirstAsync<T>()
{
return _session.QueryAsync<T>(this);
}
......@@ -630,7 +630,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public List<T> ToList<T>() where T : new()
public List<T> ToList<T>()
{
return _session.QueryList<T>(this);
}
......@@ -638,7 +638,7 @@ namespace LiteSql
/// <summary>
/// 查询列表
/// </summary>
public Task<List<T>> ToListAsync<T>() where T : new()
public Task<List<T>> ToListAsync<T>()
{
return _session.QueryListAsync<T>(this);
}
......@@ -646,7 +646,7 @@ namespace LiteSql
/// <summary>
/// 分页查询
/// </summary>
public List<T> ToPageList<T>(string orderby, int pageSize, int currentPage) where T : new()
public List<T> ToPageList<T>(string orderby, int pageSize, int currentPage)
{
return _session.QueryPage<T>(this, orderby, pageSize, currentPage);
}
......@@ -654,7 +654,7 @@ namespace LiteSql
/// <summary>
/// 分页查询
/// </summary>
public Task<List<T>> ToPageListAsync<T>(string orderby, int pageSize, int currentPage) where T : new()
public Task<List<T>> ToPageListAsync<T>(string orderby, int pageSize, int currentPage)
{
return _session.QueryPageAsync<T>(this, orderby, pageSize, currentPage);
}
......@@ -794,7 +794,7 @@ namespace LiteSql
/// 查询实体
/// </summary>
[Obsolete]
public T Query<T>() where T : new()
public T Query<T>()
{
return _session.Query<T>(this);
}
......@@ -803,7 +803,7 @@ namespace LiteSql
/// 查询实体
/// </summary>
[Obsolete]
public Task<T> QueryAsync<T>() where T : new()
public Task<T> QueryAsync<T>()
{
return _session.QueryAsync<T>(this);
}
......@@ -812,7 +812,7 @@ namespace LiteSql
/// 查询列表
/// </summary>
[Obsolete]
public List<T> QueryList<T>() where T : new()
public List<T> QueryList<T>()
{
return _session.QueryList<T>(this);
}
......@@ -821,7 +821,7 @@ namespace LiteSql
/// 查询列表
/// </summary>
[Obsolete]
public Task<List<T>> QueryListAsync<T>() where T : new()
public Task<List<T>> QueryListAsync<T>()
{
return _session.QueryListAsync<T>(this);
}
......@@ -830,7 +830,7 @@ namespace LiteSql
/// 分页查询
/// </summary>
[Obsolete]
public List<T> QueryPage<T>(string orderby, int pageSize, int currentPage) where T : new()
public List<T> QueryPage<T>(string orderby, int pageSize, int currentPage)
{
return _session.QueryPage<T>(this, orderby, pageSize, currentPage);
}
......@@ -839,7 +839,7 @@ namespace LiteSql
/// 分页查询
/// </summary>
[Obsolete]
public Task<List<T>> QueryPageAsync<T>(string orderby, int pageSize, int currentPage) where T : new()
public Task<List<T>> QueryPageAsync<T>(string orderby, int pageSize, int currentPage)
{
return _session.QueryPageAsync<T>(this, orderby, pageSize, currentPage);
}
......
......@@ -39,6 +39,7 @@
<Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapper.2.0.123\lib\net461\Dapper.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
......
......@@ -338,5 +338,71 @@ namespace LiteSqlTest
}
#endregion
#region 测试List<string>类型
[TestMethod]
public void TestListString()
{
var session = LiteSqlFactory.GetSession();
session.OnExecuting = (s, p) =>
{
Console.WriteLine(s);
};
var sql = session.Sql("select user_name from sys_user where id<=@Id", 20);
List<string> list = session.QueryList<string>(sql.SQL, sql.Params);
foreach (string item in list)
{
Console.WriteLine($"{item}");
}
Assert.IsTrue(list.Count > 0);
}
#endregion
#region 测试Dynamic类型
[TestMethod]
public void TestDynamic()
{
var session = LiteSqlFactory.GetSession();
session.OnExecuting = (s, p) =>
{
Console.WriteLine(s);
};
var sql = session.Sql("select user_name from sys_user where id<=@Id", 20);
List<dynamic> list = session.QueryList<dynamic>(sql.SQL, sql.Params);
foreach (var item in list)
{
Console.WriteLine($"{item.user_name}");
}
Assert.IsTrue(list.Count > 0);
}
#endregion
#region 测试Dynamic类型
[TestMethod]
public void TestDynamic2()
{
var session = LiteSqlFactory.GetSession();
session.OnExecuting = (s, p) =>
{
Console.WriteLine(s);
};
var sql = session.Sql("select user_name, real_name, remark from sys_user where id<=@Id", 20);
List<dynamic> list = session.QueryList<dynamic>(sql.SQL, sql.Params);
foreach (var item in list)
{
Console.WriteLine($"{item.user_name}, {item.real_name}, {item.remark}");
}
Assert.IsTrue(list.Count > 0);
}
#endregion
}
}
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Dapper" version="2.0.123" targetFramework="net461" />
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net461" />
</packages>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册