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();
注意事项
-
自动同步结构 :UseAutoSyncStructure(true) 会自动更新数据库表结构,但可能会修改字段长度或自增属性,需谨慎使用。
-
性能优化:FreeSql 提供了多种方法优化查询和操作性能,例如分页查询、批量插入等。
-
扩展性:FreeSql 支持多种数据库类型,需根据项目需求选择合适的驱动包。