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

相关推荐
神王宝宝 王者小学7 小时前
HBase: 看上去很美
大数据·数据库·hbase
io无心7 小时前
Shardingsphere5分库分表
数据库·mysql
wWYy.8 小时前
Mysql:主键索引 唯一索引 普通索引 前缀索引
数据库·mysql
宝杰X78 小时前
Android Room3 多平台数据库
android·数据库
猿长大人12 小时前
C# | JSON 序列化中的多态接口处理:基于 Attribute 实现精准 $type 控制
c#·json
sky_81061312 小时前
Oracle ERP 各模块业务管理功能及底层表说明
数据库·oracle
YMatrix 官方技术社区13 小时前
CittaBase vs. Neo4j :原生图性能实测与混合检索实践
数据库·功能测试·ymatrix
闲猫14 小时前
LangChain / Integrations / Integrations by component / Tool
java·数据库·langchain
xqqxqxxq14 小时前
SQL 连接查询技术笔记
数据库·笔记·sql
Databend15 小时前
从万亿级大模型到全线应用:Databend Cloud 助力头部 AI 企业构建全链路 Trace 数据管道
大数据·数据库·sql