- 增加 ISelect.First<Dto>() 方法;

This commit is contained in:
28810 2019-08-29 14:55:42 +08:00
parent 2dd937303b
commit 2db48bbcf9
3 changed files with 32 additions and 3 deletions

View File

@ -1032,6 +1032,13 @@
<param name="select">选择列</param> <param name="select">选择列</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.ISelect`1.ToOne``1">
<summary>
执行SQL查询返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
</summary>
<typeparam name="TDto"></typeparam>
<returns></returns>
</member>
<member name="M:FreeSql.ISelect`1.First``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})"> <member name="M:FreeSql.ISelect`1.First``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
<summary> <summary>
执行SQL查询返回指定字段的记录的第一条记录记录不存在时返回 TReturn 默认值 执行SQL查询返回指定字段的记录的第一条记录记录不存在时返回 TReturn 默认值
@ -1040,6 +1047,13 @@
<param name="select">选择列</param> <param name="select">选择列</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.ISelect`1.First``1">
<summary>
执行SQL查询返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
</summary>
<typeparam name="TDto"></typeparam>
<returns></returns>
</member>
<member name="M:FreeSql.ISelect`1.ToSql``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})"> <member name="M:FreeSql.ISelect`1.ToSql``1(System.Linq.Expressions.Expression{System.Func{`0,``0}})">
<summary> <summary>
返回即将执行的SQL语句 返回即将执行的SQL语句

View File

@ -48,6 +48,13 @@ namespace FreeSql
/// <returns></returns> /// <returns></returns>
TReturn ToOne<TReturn>(Expression<Func<T1, TReturn>> select); TReturn ToOne<TReturn>(Expression<Func<T1, TReturn>> select);
Task<TReturn> ToOneAsync<TReturn>(Expression<Func<T1, TReturn>> select); Task<TReturn> ToOneAsync<TReturn>(Expression<Func<T1, TReturn>> select);
/// <summary>
/// 执行SQL查询返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
/// </summary>
/// <typeparam name="TDto"></typeparam>
/// <returns></returns>
TDto ToOne<TDto>();
Task<TDto> ToOneAsync<TDto>();
/// <summary> /// <summary>
/// 执行SQL查询返回指定字段的记录的第一条记录记录不存在时返回 TReturn 默认值 /// 执行SQL查询返回指定字段的记录的第一条记录记录不存在时返回 TReturn 默认值
@ -57,6 +64,13 @@ namespace FreeSql
/// <returns></returns> /// <returns></returns>
TReturn First<TReturn>(Expression<Func<T1, TReturn>> select); TReturn First<TReturn>(Expression<Func<T1, TReturn>> select);
Task<TReturn> FirstAsync<TReturn>(Expression<Func<T1, TReturn>> select); Task<TReturn> FirstAsync<TReturn>(Expression<Func<T1, TReturn>> select);
/// <summary>
/// 执行SQL查询返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
/// </summary>
/// <typeparam name="TDto"></typeparam>
/// <returns></returns>
TDto First<TDto>();
Task<TDto> FirstAsync<TDto>();
/// <summary> /// <summary>
/// 返回即将执行的SQL语句 /// 返回即将执行的SQL语句

View File

@ -372,16 +372,17 @@ namespace FreeSql.Internal.CommonProvider
} }
public bool Any(Expression<Func<T1, bool>> exp) => this.Where(exp).Any(); public bool Any(Expression<Func<T1, bool>> exp) => this.Where(exp).Any();
public Task<bool> AnyAsync(Expression<Func<T1, bool>> exp) => this.Where(exp).AnyAsync(); public Task<bool> AnyAsync(Expression<Func<T1, bool>> exp) => this.Where(exp).AnyAsync();
public TReturn ToOne<TReturn>(Expression<Func<T1, TReturn>> select) => this.Limit(1).ToList(select).FirstOrDefault(); public TReturn ToOne<TReturn>(Expression<Func<T1, TReturn>> select) => this.Limit(1).ToList(select).FirstOrDefault();
async public Task<TReturn> ToOneAsync<TReturn>(Expression<Func<T1, TReturn>> select) => (await this.Limit(1).ToListAsync(select)).FirstOrDefault(); async public Task<TReturn> ToOneAsync<TReturn>(Expression<Func<T1, TReturn>> select) => (await this.Limit(1).ToListAsync(select)).FirstOrDefault();
public TDto ToOne<TDto>() => this.Limit(1).ToList<TDto>().FirstOrDefault();
async public Task<TDto> ToOneAsync<TDto>() => (await this.Limit(1).ToListAsync<TDto>()).FirstOrDefault();
public TReturn First<TReturn>(Expression<Func<T1, TReturn>> select) => this.ToOne(select); public TReturn First<TReturn>(Expression<Func<T1, TReturn>> select) => this.ToOne(select);
public Task<TReturn> FirstAsync<TReturn>(Expression<Func<T1, TReturn>> select) => this.ToOneAsync(select); public Task<TReturn> FirstAsync<TReturn>(Expression<Func<T1, TReturn>> select) => this.ToOneAsync(select);
public TDto First<TDto>() => this.ToOne<TDto>();
public Task<TDto> FirstAsync<TDto>() => this.ToOneAsync<TDto>();
public ISelect<T1> Include<TNavigate>(Expression<Func<T1, TNavigate>> navigateSelector) where TNavigate : class public ISelect<T1> Include<TNavigate>(Expression<Func<T1, TNavigate>> navigateSelector) where TNavigate : class
{ {