
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应用(模型-视图-控制器)
评价
排名
21
文章
27
粉丝
11
评论
12
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术