简单体验一个高性能,简单,轻量的ORM库- Dapper (无依赖其它库,非常方便高效)
步骤1)引入该ORM库。
使用Nuget搜索"Dapper"安装或者直接从github上下载源码 (https://github.com/StackExchange/Dapper) 集成到项目中。
步骤2)初始化数据库连接配置.
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text; namespace CoreLab.DAL.Base
{
/// <summary>
/// 功能简介:基于Dapper这个orm框架的数据库访问对象
/// 创建时间:2020-8-11
/// 创建人:ww
/// </summary>
public class DBaseForDapper
{
public static IDbConnection dbConnect_GmUser
{
get
{
return new MySqlConnection(SqlConnectManager.Instance.SqlConnectStr_Gateway);//SqlConnection默认是Sqlserver的,他们都实现了IDbConnnection
}
}
}
}
步骤3)从简单的CRUD来体验Dapper( 由于仅用于体验用法,因此直接写在controller中了).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using CoreLab.Model.ListPageModel;
using CoreLab.Model.Configs;
using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.Http;
using System.Net.Http.Headers;
using System.IO;
using Microsoft.AspNetCore.Hosting;using Newtonsoft.Json;using System.Text;
using CoreLab.DAL;
using CoreLab.DAL.Base;
using Dapper;
using System.Data;namespace CoreLab.Web.Controllers
{
/// <summary>
/// 功能简介:本控制器内的代码仅用于快速测试.
/// 创建时间:2020-8-11
/// 创建人:ww
/// </summary>
public class DemoController : BaseController
{
public string DapperTest_Add(string CardTypeId,string CardTypeName)
{
try
{
E_CardType eCardType = new E_CardType() { CardTypeId = CardTypeId, CardTypeName = CardTypeName, CreateTime = DateTime.Now, EnableStatus = 1 };
using (IDbConnection dbConnection = DBaseForDapper.dbConnect_GmUser)
{
int iReturn = dbConnection.Execute("insert into tb_cardtype(CardTypeId,CardTypeName,EnableStatus) values(@CardTypeId,@CardTypeName,@EnableStatus)", eCardType);
return iReturn.ToString();
}
}
catch(Exception ex)
{ }
return "-1";
}
public IActionResult DapperTest_QueryList()
{
try
{
using (IDbConnection dbConnection = DBaseForDapper.dbConnect_GmUser)
{
IList<E_CardType> listCardType = dbConnection.Query<E_CardType>("select * from tb_cardtype",null).ToList();
return new JsonResult(listCardType);
}
}
catch (Exception ex)
{ }
return new JsonResult(null);
}
public IActionResult DapperTest_QueryEntity(string CardTypeId)
{
try
{
using (IDbConnection dbConnection = DBaseForDapper.dbConnect_GmUser)
{
//如果是in @ids 则对应一个数组而不是对象。
IEnumerable<E_CardType> listCardType = dbConnection.Query<E_CardType>("select * from tb_cardtype where CardTypeId=@CardTypeId", new E_CardType() { CardTypeId= CardTypeId });
if (listCardType != null && listCardType.Count() > 0)
{
return new JsonResult(listCardType.First());
}
return new JsonResult(null);
}
}
catch (Exception ex)
{ }
return new JsonResult(null);
}
public string DapperTest_Update(string CardTypeId, int EnableStatus)
{
try
{
using (IDbConnection dbConnection = DBaseForDapper.dbConnect_GmUser)
{
int iReturn = dbConnection.Execute($"update tb_cardtype set EnableStatus={EnableStatus} where CardTypeId=@CardTypeId",
new E_CardType() { CardTypeId=CardTypeId });
return iReturn.ToString();
}
}
catch (Exception ex)
{ }
return "-1";
} public string DapperTest_Delete(string CardTypeId)
{
try
{
using (IDbConnection dbConnection = DBaseForDapper.dbConnect_GmUser)
{
int iReturn = dbConnection.Execute($"delete from tb_cardtype where CardTypeId=@CardTypeId",
new E_CardType() { CardTypeId = CardTypeId });
return iReturn.ToString();
}
}
catch (Exception ex)
{ }
return "-1";
}
}
/// <summary>
/// 游戏卡类型
/// </summary>
public class E_CardType
{
public string CardTypeId { get; set; }
public string CardTypeName { get; set; }
public DateTime CreateTime { get; set; }
public int EnableStatus { get; set; }
}
}
简单体验一个高性能,简单,轻量的ORM库- Dapper (无依赖其它库,非常方便高效)的更多相关文章
- 轻量型ORM框架Dapper的使用
在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...
- ASP.NET Core 3.0 一个 jwt 的轻量角色/用户、单个API控制的授权认证库
目录 说明 一.定义角色.API.用户 二.添加自定义事件 三.注入授权服务和中间件 三.如何设置API的授权 四.添加登录颁发 Token 五.部分说明 六.验证 说明 ASP.NET Core 3 ...
- Wenaox 一款轻量性能好的微信小程序状态管理库
感慨一下!!! 从开始开发 wenaox 从开始到现在,,时不时更新一下,改一改 bug,却发现已经快 1 年了 orz 虽然很少人用 hhh,但偶尔也会有人提一些问题,我就知道还有人用的~ 感兴趣的 ...
- .Net Core3.0 WebApi 项目框架搭建 五: 轻量型ORM+异步泛型仓储
.Net Core3.0 WebApi 项目框架搭建:目录 SqlSugar介绍 SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET C ...
- 关于对MyBatis.net框架的学习笔记( MyBatis.net是一款灵活性极大,sql由开发者自行在xml中编写, 轻量的ORM映射框架). 同时避免了sql硬编码到代码中不易维护的问题...
对于为什么要用ORM,为什么又要选择MyBatis.net,这个问题希望读者自行查找资料.这里直接贴出相关的调试笔记. 步骤1)下载与引用. http://code.google.com/p/myba ...
- Pagekit – 现代化技术构建的轻量的 CMS 系统
Pagekit 是一个模块化,轻量的 CMS 系统,基于现代化的技术,如 Symfony 组件和 Doctrine.它提供了一个很好的平台,用于主题和延伸开发.Pagekit 为您提供了工具来创造美丽 ...
- 阿里云轻量服务器价格及轻量与ECS服务器区别比较
https://yq.aliyun.com/articles/221647 摘要: 阿里云轻量应用服务器价格表及介绍,关于轻量应用服务器和ECS服务器的性能对比 阿里云轻量应用服务器是阿里云新推出的服 ...
- Hexo - 快速,轻量,强大的 Node.js 博客框架
Hexo 是一个快速,轻量,强大的 Node.js 博客框架.带给你难以置信的编译速度,瞬间生成静态文件:支持 Markdown,甚至可以在 Hexo 中集合 Octopress 插件:只需要一个命令 ...
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自 ...
随机推荐
- HDU3949/AcWing210 XOR (高斯消元求线性基)
求第k小的异或和,用高斯消元求更简单一些. 1 //用高斯消元求线性基 2 #include<bits/stdc++.h> 3 using namespace std; 4 #define ...
- map集合类型/实体类类型的参数
map集合类型的参数 若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合, 将这些数据放在map中 只需要通过${}和#{}访问map集合的键就可以获取相对应的值,注意${}需要 ...
- 驱动开发:内核枚举LoadImage映像回调
在笔者之前的文章<驱动开发:内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个 ...
- 深度学习环境搭建常用网址、conda/pip命令行整理(pytorch、paddlepaddle等环境搭建)
前言:最近研究深度学习,安装了好多环境,记录一下,方便后续查阅. 1. Anaconda软件安装 1.1 Anaconda Anaconda是一个用于科学计算的Python发行版,支持Linux.Ma ...
- Sublime Text怎样自定义配色和主题
一.自定义配色方案 1 基础知识 配色方案[Color Scheme]文件保存在以下路径[ST安装目录]: "D:\Program Files\Sublime Text\Packages\C ...
- VBA粗犷整理
PART1: 三.查找 1.从某一行向上/下找到第一个不为空的行 intRowPntEnd = ActiveSheet.Cells(intRowPntStart, intColPnt).End(xlD ...
- ubuntu 基本指令
系统相关 df: disk free 用以显示系统上文件系统磁盘的使用情况 # 以M/G单位显示硬盘空间大小 df -h apt: advanced packaging tool 包管理工具 apt ...
- 修改服务器ssh端口
最近,访问公司虚拟机都需要通过堡垒机才能访问了,觉得麻烦.要想不受该规则限制,也有办法,可以通过修改虚拟机ssh端口解决. 下面做个介绍. 1. 通过堡垒机登录虚拟机 2. 修改虚拟机ssh端口 编辑 ...
- CC3
cc_link_three 0x00前言 这里要单独学cc链子三是因为它的调用方式不是执行命令而是代码执行,是一种动态类加载机制来执行代码,然后类加载的时候要用类加载器 0x01开整 首先明白调用机制 ...
- ElasticSearch深度分页详解
1 前言 ElasticSearch是一个实时的分布式搜索与分析引擎,常用于大量非结构化数据的存储和快速检索场景,具有很强的扩展性.纵使其有诸多优点,在搜索领域远超关系型数据库,但依然存在与关系型数据 ...