C#FreeSql,直接执行原生sql
时间: 2024-10-07 09:02:27 浏览: 77
EF和FreeSql读取Sqlite数据库的差别
在C#中使用FreeSql执行原生SQL通常不是通过扩展方法来实现的,因为FreeSql的核心是ORM(对象关系映射),但它也支持编写动态SQL或执行存储过程。如果你想直接运行非映射到对象的原始SQL语句,可以通过`ExecuteScalar`, `ExecuteNonQuery`, 或者`ExecuteReader`方法来操作。
1. 执行查询并返回单个值[^1]:
```csharp
var connectionString = "your_connection_string";
using (var fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.Sqlite, connectionString)
.UseAutoSyncStructure(false) // 如果不需要自动迁移结构
.Build())
{
string sql = "SELECT MAX(column_name) FROM your_table";
object result = fsql.ExecuteScalar(sql); // 根据查询结果类型可能是int, float, string等
}
```
2. 执行非查询操作:
```csharp
fsql.ExecuteNonQuery(sql, commandType: CommandType.Text);
```
3. 获取游标执行多条记录:
```csharp
IDbCommand cmd = fsql.CreateCommand();
cmd.CommandText = "SELECT * FROM your_table";
IDataReader reader = cmd.ExecuteReader();
// 遍历reader获取数据...
reader.Close();
```
阅读全文