FreeSql使用详解
电脑版发表于:2022/3/8 13:28
FreeSql 主要对于数据库的增删改查操作,本身不难,难的是入门,本章主要讲解对于Freesql的入门配置
本章讲解所需工具:MySQL,VS2022(工具不唯一)
1.引入Freesql依赖包:
官网命令为:
dotnet add package FreeSql
输出:未找到指定包
解决方案:(网上挺多的)
dotnet add 项目名称 package FreeSql
第二种方法:
工具>NuGet程序包管理器>管理解决方案的NuGetc程序包>浏览>搜索Freesql
安装带有数据库名的(mysql/sqlserver)
2.配置:2022是Program.cs
var connectionString = "Data Source=127.0.0.1; Port = 3306; User ID = root; Password = 123456; " +
"Initial Catalog=sys;Charset=utf8;SslMode=none;Max pool size=10";
IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.MySql, connectionString)
.UseAutoSyncStructure(true) //自动同步实体结构到数据库,FreeSql不会扫描程序集,只有CRUD时才会生成表。
.Build();
builder.Services.AddSingleton<IFreeSql>(fsql);
builder.Services.AddScoped<ISqlStr, SqlStr>();
//Initial Catalog是数据库的库名
//注意:该文件内有一句代码:var app = builder.Build();
//本句代码必须在上述代码的下面(后面)否则运行vs的时候会输出无法解析的error
3.1 运用:
(1)创建接口:IFreeSql
public partial interface ISqlStr
{
int Insert();
}
(2)创建类 SqlStr>用于实现接口(注:该类里面书写构造函数注入Freesql工具类)
private IFreeSql fsql;
public SqlStr(IFreeSql _fsql)
{
fsql = _fsql;
}
/// <summary>
/// 添加一条数据
/// </summary>
/// <returns></returns>
public int Insert()
{
var items = new List<Topic>();
for (var a = 0; a < 10; a++)
items.Add(new Topic { BlogId = a + 1, Url = $"newtitle{a}", Rating = a * 100 });
int t1 = fsql.Insert(items.First()).ExecuteAffrows();
return t1;
}
//这里的Topic是自己创建的实体类
//添加方法不唯一,这里是实例类for添加数据再取第一条添加至数据库
//这里仅列举一个添加单条数据的方法,其余方法官网上有
3.2 使用方法:
vs版本不同可能add的方法不同,主要是给接口类和实现类配置关系
builder.Services.AddScoped<ISqlStr, SqlStr>();
//vs2022的是AddScoped
//配置文件内的代码推荐都写在var app = builder.Build();的前面
最后就是调用方法啦,当然,还是要借助依赖注入的方法(注入方法不唯一,有特性注入等)
private readonly ILogger<HomeController> _logger;
private readonly ISqlStr _Isql;
public HomeController(ILogger<HomeController> logger,ISqlStr Isql)
{
_Isql = Isql;
_logger = logger;
}
//控制器内:
int count=_Isql.Insert();
另外,本文章使用vs创建的模板是ASP.NET Core Web应用(模型-视图-控制器)