asp.net mysql 事务_ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题)。
project.json 代码:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"Dapper": "1.50.2",
"MySql.Data": "7.0.6-IR31"
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
测试数据库脚本:
CREATE TABLE `products` (
`ProductID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(255) DEFAULT NULL,
`Quantity` int(11) DEFAULT NULL,
`Price` int(11) DEFAULT NULL,
PRIMARY KEY (`ProductID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk;
Product 代码:
public class Product
{
[Key]
public int ProductId { get; set; }
public string Name { get; set; }
public int Quantity { get; set; }
public double Price { get; set; }
}
ProductRepository 代码(数据访问操作):
public class ProductRepository
{
private string connectionString;
public ProductRepository()
{
connectionString = @"server=localhost;database=dapperdemo;uid=root;pwd=123456;";
}
public IDbConnection Connection
{
get
{
return new MySqlConnection(connectionString);
}
}
public void Add(Product prod)
{
using (IDbConnection dbConnection = Connection)
{
string sQuery = "INSERT INTO Products (Name, Quantity, Price)"
+ " VALUES(@Name, @Quantity, @Price)";
dbConnection.Open();
dbConnection.Execute(sQuery, prod);
}
}
public IEnumerable GetAll()
{
using (IDbConnection dbConnection = Connection)
{
dbConnection.Open();
return dbConnection.Query("SELECT * FROM Products");
}
}
public Product GetByID(int id)
{
using (IDbConnection dbConnection = Connection)
{
string sQuery = "SELECT * FROM Products"
+ " WHERE ProductId = @Id";
dbConnection.Open();
return dbConnection.Query(sQuery, new { Id = id }).FirstOrDefault();
}
}
public void Delete(int id)
{
using (IDbConnection dbConnection = Connection)
{
string sQuery = "DELETE FROM Products"
+ " WHERE ProductId = @Id";
dbConnection.Open();
dbConnection.Execute(sQuery, new { Id = id });
}
}
public void Update(Product prod)
{
using (IDbConnection dbConnection = Connection)
{
string sQuery = "UPDATE Products SET Name = @Name,"
+ " Quantity = @Quantity, Price= @Price"
+ " WHERE ProductId = @ProductId";
dbConnection.Open();
dbConnection.Execute(sQuery, prod);
}
}
public void TransactionTest()
{
using (IDbConnection dbConnection = Connection)
{
string sQuery = "UPDATE Products SET Name = 'xishuai222'"
+ " WHERE ProductId = 1";
dbConnection.Open();
using (var transaction = dbConnection.BeginTransaction())
{
dbConnection.Execute(sQuery);
///to do throw exception
transaction.Commit();
}
}
}
}
调用代码:
public class Program
{
public static void Main(string[] args)
{
var productRepository = new ProductRepository();
var product = new Product() { Name = "xishuai" };
productRepository.Add(product);
var products = productRepository.GetAll();
foreach (var item in products)
{
Console.WriteLine($"id: {item.ProductId}; name: {item.Name}");
}
productRepository.TransactionTest();
Console.ReadKey();
}
}
参考资料:
asp.net mysql 事务_ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)相关推荐
- netcore dapper mysql_.NET Core Dapper操作mysql数据库
前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了.今天,我们不谈EF,也不聊神马黑马,就说说 Dapper.如何在.NET Core中使用Dapper操作Mysql数据库呢,让我们跟随镜头 ...
- dapper mysql_.NET Core Dapper操作mysql数据库
.NET Core Dapper操作mysql数据库 发布时间:2019-04-25 19:48, 浏览次数:744 , 标签: NET Core Dapper mysql 前言 现在ORM盛行,市面 ...
- dapper mysql_.NET Core Dapper操作mysql数据库的实现方法
前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了.今天,我们不谈EF,也不聊神马黑马,就说说 Dapper.如何在.NET Core中使用Dapper操作Mysql数据库呢,让我们跟随镜头 ...
- .net core 1.1 mysql_Asp.net Core 1.1 升级后操作mysql出错的解决办法
这篇文章主要介绍了Asp.net Core 1.1 升级后操作mysql出错的解决办法,需要的朋友可以参考下 遇到问题 core的版本从1.0升级到1.1,操作mysql数据库,查询数据时遇到Miss ...
- .NET Core 使用Dapper 操作MySQL
MySQL官方驱动:http://www.cnblogs.com/linezero/p/5806814.html .NET Core 使用Dapper 操作MySQL 数据库, .NET Core 使 ...
- python mysql工具类_Python工具类(一)—— 操作Mysql数据库
如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...
- asp网上书店系统_Asp.net Core启动流程讲解(一)
asp.net core默认项目包括 项目根目录级的Startup.cs.Program.cs.appsettings.json(appsettings.Development.json) launc ...
- asp 取数据 计算_ASP.NET Core 简介
.NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows.Mac OSX .Linux ) 能力的应用程序开发框 http://ASP.NE ...
- asp ado 连接测试_ASP.NET Core 简介
.NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows.Mac OSX .Linux ) 能力的应用程序开发框 http://ASP.NE ...
最新文章
- ad16自动布线设置规则_PCB设计的十大误区——那些年,我们一起遵守的规则
- Bigtable数据模型和架构
- 字符编码解码整合工具
- ipa 上传卡在鉴权_解决App Store上传ipa卡在Authenticating with App Store的问题
- Hibernate关联映射(一对多/多对多)
- 数据结构上机实践第四周项目6- 循环双链表应用
- ConceptDraw Office for mac(跨平台图表办公程序)
- 容器技术Docker K8s 43 Serverless Kubernetes(ASK)详解-ASK网络、存储、日志、监控管理
- 互联网未来十年发展趋势
- C++11版本后的一写新语法及使用方法for、vector、map
- linux怎么运行quartus,如何安裝Linux版本的Quartus II
- Java解析OpenDrive,OpenDrive格式解析
- 非线性激励函数sigmoid,tanh,softplus,Relu
- PAT(乙级)2022年夏季考试
- opencv:对`cv :: DescriptorMatcher‘的未定义引用
- 存储系统——主存储器
- ColorPicker一款安卓取色器,模仿ps取色板
- 牛客-直角三棱锥(公式推导)
- 观李筱懿视频号有感:不要让所谓的大度变成对自己的道德绑架
- 法规标准-UN R152标准解读
热门文章
- Karp 21个规约问题 笔记 (1~13个规约问题)
- statsmodels 笔记:自回归模型 AutoReg
- pytorch实现简易分类模型
- MATLAB处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- windows安装anaconda_[计算机科学工具系列] Anaconda和conda
- python gil锁_python中的GIL锁
- python3-matplotlib库简单入门
- QT判断多级目录是否存在,不存在就创建
- 如何基于Redis Replication设计并实现Redis-replicator?
- spring bean生命周期管理--转