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 支持多种数据库类型,需根据项目需求选择合适的驱动包。

相关推荐
2401_884454153 小时前
如何防止SQL触发器导致性能下降_通过精简触发器逻辑
jvm·数据库·python
m0_596749093 小时前
Golang如何做Clean Architecture_Golang整洁架构教程【详解】
jvm·数据库·python
半夜修仙4 小时前
Redis入门
数据库·redis·缓存
KaMeidebaby4 小时前
卡梅德生物技术快报|单 B 细胞抗体筛选服务:技术架构、流程实现与数据验证
前端·数据库·其他·百度·新浪微博
2401_867623984 小时前
如何管理应用锁_DBMS_LOCK申请自定义锁控制并发逻辑
jvm·数据库·python
yzs874 小时前
SQL Sever Pragmatic Bitmap过滤技术解析
数据库·sql
woxihuan1234564 小时前
SQL数据分析如何剔除极端异常值_配合窗口函数检测偏离度
jvm·数据库·python
2303_821287384 小时前
Go 中通过指针实现变量名的“间接引用”与原地修改
jvm·数据库·python
ClouGence4 小时前
TiCDC 够用吗?聊聊 TiDB 同步的几个关键问题
数据库·分布式·后端
iuvtsrt4 小时前
SQL如何高效提取大表前几行:分页查询与OFFSET优化
jvm·数据库·python