分类:
.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-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术