[开源] .NetCore 使用 ORM FreeSql 访问 MySql/Mariadb
1、创建项目
我们以 console 类型项目试验 插入、删除、更新、查询 等功能,创建控制台项目,使用命令:
dotnet new console

dotnet add package FreeSql.Provider.MySql
dotnet add package FreeSql.Repository

2、创建实体模型
using System;
using FreeSql.DataAnnotations;
public class User
{
[Column(IsIdentity = true)]
public long Id { get; set; }
public string UserName { get; set; }
public string PassWord { get; set; }
public DateTime CreateTime { get; set; }
}
3、初始化 ORM
static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=testdb;Charset=utf8;SslMode=none")
.UseMonitorCommand(cmd => Trace.WriteLine($"线程:{cmd.CommandText}\r\n"))
.UseAutoSyncStructure(true) //自动创建、迁移实体表结构
.UseNoneCommandParameter(true)
.Build();
4、插入数据
var repo = fsql.GetRepository<User>();
var user = new User { UserName = "mysql1", PassWord = "123" };
repo.Insert(user);

表已自动创建,或者对比更新结构。执行完成后,自增值填充到实体属性中。
var users = new []
{
new User { UserName = "mysql2", PassWord = "1234" },
new User { UserName = "mysql3", PassWord = "12345" },
new User { UserName = "mysql4", PassWord = "123456" }
};
repo.Insert(users);
//批量插入
打开 navicat 工具打开表:

5、更新数据
user.PassWord = "123123";
repo.Update(user);

6、查询数据
var one = fsql.Select<User>(1).First(); //查询一条数据
var list = fsql.Select<User>().Where(a => a.UserName.StartsWith("mysql")).ToList();


7、删除数据
fsql.Delete<User>(1).ExecuteAffrows();
fsql.Delete<User>().Where(a => a.UserName.StartsWith("mysql")).ExecuteAffrows();
结语
这篇文章简单介绍了在 .net core 3.1 环境中使用 FreeSql 对 MySql 数据库的访问,目前 FreeSql 还支持 .net framework 4.0 和 xamarin 平台上使用。
除了 增删查改,FreeSql 还支持很多功能,就不一一演示,一篇文章介绍不完。
FreeSql 是 .NETCore/.NetFramework/Xamarin 平台下的 ORM 开源项目,支持 SqlServer/MySql/PostgreSQL/Oracle/Sqlite/MsAccess,还有达梦数据库,未来还会接入更多的国产数据库支持。
源码地址:https://github.com/2881099/FreeSql
谢谢支持!
[开源] .NetCore 使用 ORM FreeSql 访问 MySql/Mariadb的更多相关文章
- [开源] .Net ORM FreeSql 1.10.0 稳步向行
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白).今天带点干货和湿货给大家,先说下湿货. 认识我的人,知道 CSRedisCore ...
- [开源] .Net orm FreeSql 1.5.0 最新版本(番号:好久不见)
废话开头 这篇文章是我有史以来编辑最长时间的,历时 4小时!!!原本我可以利用这 4小时编写一堆胶水代码,真心希望善良的您点个赞,谢谢了!! 很久很久没有写文章了,上一次还是在元旦发布 1.0 版本的 ...
- [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报(番号:我还活着)
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,在一些人眼里属于重复造轮子:不看也罢.就像昨天有位朋友截图某培训直播发给我看,内容为:"FreeSQL(个人产品),自己玩 ...
- C#.NET ORM 如何访问 Access 数据库 [FreeSql]
最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...
- 开源一个好用的nodejs访问mysql类库
一.背景问题 自nodejs诞生以来出现了一大批的web框架如express koa2 egg等等,前端可以不再依赖后端可以自己控制服务端的逻辑.原来的后端开发同学的阵地前端如今同样也写的风生水起,撸 ...
- MySQL/MariaDB如何创建用户并限制指定才能IP访问?
MySQL/MariaDB如何创建用户并限制指定才能IP访问? 登入数据 $ mysql --version mysql Ver 15.1 Distrib 10.9.3-MariaDB, for de ...
- C#.NET ORM FreeSql 读取使用 US7ASCII 的 Oracle 数据库中文显示乱码问题
前言 关于 Oracle US7ASCII 中文乱码的问题,Ado.Net 和 Odbc 无法解决.包括最新的.Net Core..NET6..NET7 都无法解决这个问题. FreeSql 对 Or ...
- 【设计过程】.NET ORM FreeSql WhereDynamicFilter 动态表格查询功能
前言 最近几乎每天40度,越热越不想面对电脑,还好开源项目都比较稳定没那么多待解决问题,趁着暑假带着女儿学习游泳已略有小成.游泳好处太多了,建议有孩子的都去学学,我是在岸边指导大约一周左右就学会了,目 ...
- 15 个有用的 MySQL/MariaDB 性能调整和优化技巧(转载的一篇好文)
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS).它发布于 1995 年(20年前).它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择.最新的 MySQL 版本是 ...
- .NETCore 新型 ORM 功能介绍
简介 FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+. 定义 IFre ...
随机推荐
- ADALM-Pluto修改芯片类型为AD9364模式
ADALM-Pluto 使用芯片AD9363(325 MHz - 3.8 GHz),但可切换至 AD9364(70 MHz - 6 GHz)模式,此篇随笔将采用串口调试的方式将 Pluto 设置为 A ...
- CDN在互联网直播中的运用与性能优化
本文分享自天翼云开发者社区<CDN在互联网直播中的运用与性能优化>,作者:不知不觉 随着互联网技术的不断发展,互联网直播已成为人们获取信息.娱乐.学习等多种需求的重要途径之一.然而,在直播 ...
- MySql中创建用户以及设置其操作权限
以下设置针对MySql8+版本进行测试,低版本暂无测试. 以管理员身份CMD并定位到MySql安装的bin目录,然后执行命令mysql -u root -p登录到MySql,然后输入登录密码,登录成功 ...
- Centos7搭建mailx邮件应用
邮件发送原理图 邮件用户代理(MUA,Mail User Agent)邮件传送代理(MTA,Mail Transport Agent)邮件分发代理(MDA,Mail Deliver Agent) 邮件 ...
- 使用iceberg-flink读取iceberg v2表
一.背景 mysql数据入湖后,有同事需要实时抽取iceberg v2表,想通过iceberg做分钟级实时数仓.目前flink社区暂不支持读取v2表.腾讯内部支持 目前只能用Oceanus内置conn ...
- Calcite 获取jdbc连接流程
一.类调用 简介:calcite可以连接各数据源,做查询.可以收口查询权限,查询多引擎需求 二. 获取Connection发送的请求 请求介绍文档:https://calcite.apache.org ...
- Linux驱动---按键
目录 一.Input子系统 1.1.简介 1.2.Input子系统构成 1.3.input_dev结构体 二.输入设备驱动开发流程 2.1.分配和初始化输入设备 2.2.注册设备 2.3.事件上报 2 ...
- 安装mysql报错5.7.13-Table 'mysql.user' doesn't existFor more information
临时写的一个小系统客户要求用mysql,所以下载一个来研究下.解压后开始配置my.ini 配置my.ini [mysql]# 设置mysql客户端默认字符集default-character-set= ...
- API方式开发AI应用的三点总结
1. 编程式prompt 让 AI 具备类似程序的运行逻辑.把大模型当CLR使用.与传统的角色扮演提示prompt相比,此方式所需的tokens数量更少,且输出结果的准确性更高 .示例如下: 2. 语 ...
- ABC391F题解
不加火车头(不吸氧)不开快读全部 long long 提交记录. 使用了我所知的三种优化后的提交记录(最慢点还是没有在一秒内跑过啊). 做法非常的妙,我们先将 \(A,B,C\) 这三个数组降序排序, ...