diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 310ff7ed..be8774fe 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -1032,6 +1032,13 @@
选择列
+
+
+ 执行SQL查询,返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
+
+
+
+
执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值
@@ -1040,6 +1047,13 @@
选择列
+
+
+ 执行SQL查询,返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
+
+
+
+
返回即将执行的SQL语句
diff --git a/FreeSql/Interface/Curd/ISelect/ISelect1.cs b/FreeSql/Interface/Curd/ISelect/ISelect1.cs
index aee69f3a..0ec2e749 100644
--- a/FreeSql/Interface/Curd/ISelect/ISelect1.cs
+++ b/FreeSql/Interface/Curd/ISelect/ISelect1.cs
@@ -48,6 +48,13 @@ namespace FreeSql
///
TReturn ToOne(Expression> select);
Task ToOneAsync(Expression> select);
+ ///
+ /// 执行SQL查询,返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
+ ///
+ ///
+ ///
+ TDto ToOne();
+ Task ToOneAsync();
///
/// 执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值
@@ -57,6 +64,13 @@ namespace FreeSql
///
TReturn First(Expression> select);
Task FirstAsync(Expression> select);
+ ///
+ /// 执行SQL查询,返回 TDto 映射的字段,记录不存在时返回 Dto 默认值
+ ///
+ ///
+ ///
+ TDto First();
+ Task FirstAsync();
///
/// 返回即将执行的SQL语句
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
index e0a1a421..5f82840d 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs
@@ -372,16 +372,17 @@ namespace FreeSql.Internal.CommonProvider
}
public bool Any(Expression> exp) => this.Where(exp).Any();
-
public Task AnyAsync(Expression> exp) => this.Where(exp).AnyAsync();
public TReturn ToOne(Expression> select) => this.Limit(1).ToList(select).FirstOrDefault();
-
async public Task ToOneAsync(Expression> select) => (await this.Limit(1).ToListAsync(select)).FirstOrDefault();
+ public TDto ToOne() => this.Limit(1).ToList().FirstOrDefault();
+ async public Task ToOneAsync() => (await this.Limit(1).ToListAsync()).FirstOrDefault();
public TReturn First(Expression> select) => this.ToOne(select);
-
public Task FirstAsync(Expression> select) => this.ToOneAsync(select);
+ public TDto First() => this.ToOne();
+ public Task FirstAsync() => this.ToOneAsync();
public ISelect Include(Expression> navigateSelector) where TNavigate : class
{