分类:
.NET
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应用(模型-视图-控制器)
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术