FreeSql 快速入门及最佳实践指南

FreeSql 快速入门及最佳实践指南

FreeSql项目地址:https://gitcode.com/gh_mirrors/fre/FreeSql

1. 项目介绍

FreeSql 是一个轻量级且强大的 .NET ORM 工具,支持 .NET Core 和 .NET Framework。它提供了丰富的 API 设计,可以方便地进行数据库的读写操作,同时也支持数据迁移、分表分库、全局过滤器等功能。FreeSql 支持多种数据库引擎,包括 MySQL、SQL Server、PostgreSQL、Oracle、SQLite、Firebird 及国内的一些主流数据库。该项目采用 MIT 许可证,源码公开,允许自由使用和修改。

2. 项目快速启动

首先确保已经安装了对应的数据库驱动程序。以下是一个简单的使用示例,演示如何连接数据库并执行查询:

安装依赖包

在你的 .csproj 文件中添加以下 NuGet 包依赖:

<PackageReference Include="FreeSql.Provider.MySql" Version="latest" />

连接数据库

using FreeSql;

var fsql = new MySqlProvider<MySqlParameter>()
    .Connect("Server=localhost;Database=test;Uid=root;Pwd=123456;");

查询数据

var users = fsql.Ado.SqlQuery<User>("select * from user where id = @id", new { id = 1 }).ToList();

插入数据

fsql.Ado.ExecuteCommand(
    "insert into user (name, age) values (@name, @age)", 
    new { name = "张三", age = 20 });

3. 应用案例和最佳实践

代码第一式:使用 CodeFirst 进行数据模型定义

public class User {
    [Column(IsIdentity = true)]
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

var db = new FreeSqlBuilder()
    .UseAutoSyncStructure(true)
    .UseConnectionString(DataType.MySql, "Server=localhost;Database=test;Uid=root;Pwd=123456;")
    .Build();

db.CodeFirst.SyncStructure(typeof(User)); //同步结构到数据库

最佳实践:使用 Repository 模式

为了更好地组织业务逻辑,推荐使用 Repository 模式来封装数据库操作:

public interface IUserRepository {
    IEnumerable<User> GetAll();
    User GetById(int id);
    void Save(User user);
}

public class UserRepository : IUserRepository {
    private readonly IFreeSql _freeSql;
    
    public UserRepository(IFreeSql freeSql) {
        _freeSql = freeSql;
    }

    public IEnumerable<User> GetAll() => _freeSql.Select<User>().ToList();
    public User GetById(int id) => _freeSql.Select<User>().Where(u => u.Id == id).First();
    public void Save(User user) => _freeSql.Update(user).ExecuteAffrows();
}

数据库分片最佳实践

通过 GlobalFilter 实现读写分离或者数据分库分表:

//读写分离示例
fsql.GlobalFilter.Enable(a => a.WriteDb == "master");
//数据分库分表示例
fsql.GlobalFilter.EnableSharding(a => a.Id % 2); //偶数 ID 到库 1,奇数 ID 到库 2

4. 典型生态项目

  • FreeSql.AdminBlazor: 基于 Blazor 的管理后台框架,集成 FreeSql。
  • FreeRedis: 强大的 Redis 客户端工具。
  • FreeScheduler: 简单易用的任务调度框架。
  • FreeIM: 跨平台即时通讯系统解决方案。

这些项目展示了 FreeSql 在实际应用场景中的扩展性和兼容性,有助于构建完整的业务系统。


以上就是 FreeSql 的基本介绍、快速启动步骤、实践案例以及相关生态项目。深入了解和熟练掌握 FreeSql 将使您的数据库开发工作更加高效和灵活。更多详细信息请参考官方文档:

祝您使用愉快!

FreeSql项目地址:https://gitcode.com/gh_mirrors/fre/FreeSql

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪澄莹George

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值