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

相关推荐
风吹心凉2 小时前
Agent大脑-RAG知识库
数据库
VALENIAN瓦伦尼安教学设备2 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
黄俊懿2 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密
网络·数据库·计算机网络·安全·架构·系统架构·架构师
garmin Chen2 小时前
redis面试题
java·数据库·redis·缓存
小小龙学IT3 小时前
Qt 元对象系统(Meta-Object System)深度解析:从 MOC 到反射式编程
数据库·qt
格林威3 小时前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
想带你从多云到转晴3 小时前
MySQL重点梳理
数据库·mysql
胖头鱼的鱼缸(尹海文)3 小时前
胖头鱼的技术专栏-465 数据库能力上移还是下沉:库变弱了,应用就变重了(20260828)
数据库
J总裁的小芒果3 小时前
参数过多-分批传参
c#
2601_962181964 小时前
Redis Redis介绍、安装 - Redis客户端
数据库·redis·postman