c# 使用freesql

FreeSql 是一个功能强大的 ORM 框架,支持多种数据库类型,能够简化数据库操作,提高开发效率。在 WinForm 应用中,FreeSql 可以用于实现增删改查等功能。以下是一个简单的使用示例。

配置和初始化

首先,需要通过 NuGet 安装 FreeSql 的相关包,并在配置文件中添加数据库连接字符串。例如:

<appSettings>

<add key="db" value="Server=127.0.0.1;Database=TestDB;User Id=sa;Password=yourpassword;" />

</appSettings>

在代码中初始化 FreeSql:

using FreeSql;

static IFreeSql fsql;

private void Form_Load(object sender, EventArgs e)

{

var connectionString = ConfigurationManager.AppSettings"db";

fsql = new FreeSqlBuilder()

.UseConnectionString(DataType.SqlServer, connectionString)

.UseAutoSyncStructure(true) // 自动同步实体结构到数据库

.Build();

}

数据模型定义

创建一个数据模型类,用于映射数据库表。例如:

using FreeSql.DataAnnotations;

public class User

{

Column(IsPrimary = true, IsIdentity = true)

public int Id { get; set; }

public string Name { get; set; }

Column(DbType = "nvarchar(200)")

public string Email { get; set; }

}

数据操作示例

查询数据

使用 Queryable 方法查询数据:

var users = fsql.Queryable<User>().ToList();

foreach (var user in users)

{

Console.WriteLine($"ID: {user.Id}, Name: {user.Name}, Email: {user.Email}");

}

插入数据

通过 Insert 方法插入数据:

var newUser = new User { Name = "John Doe", Email = "john.doe@example.com" };

fsql.Insert(newUser).ExecuteAffrows(); // 返回受影响的行数

更新数据

使用 Update 方法更新数据:

var userToUpdate = fsql.Queryable<User>().Where(u => u.Id == 1).First();

userToUpdate.Name = "Jane Doe";

fsql.Update<User>().SetSource(userToUpdate).ExecuteAffrows();

删除数据

通过 Delete 方法删除数据:

fsql.Delete<User>().Where(u => u.Id == 1).ExecuteAffrows();

注意事项

  1. 自动同步结构UseAutoSyncStructure(true) 会自动更新数据库表结构,但可能会修改字段长度或自增属性,需谨慎使用。

  2. 性能优化:FreeSql 提供了多种方法优化查询和操作性能,例如分页查询、批量插入等。

  3. 扩展性:FreeSql 支持多种数据库类型,需根据项目需求选择合适的驱动包。

相关推荐
笃行35017 小时前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行35017 小时前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行35017 小时前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
SelectDB2 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶2 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵2 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils2 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
Databend3 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
雨落倾城夏未凉3 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#