微软企业库支持 MySql

 

三步让企业库支持 mysql 数据库

1.创建 MySqlDatabaseData 类

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation;
using System.Configuration; namespace Grass.MySqlDal.Data
{
/// <summary>
/// Describes a <see cref="SqlDatabase"/> instance, aggregating information from a
/// <see cref="ConnectionStringSettings"/>.
/// </summary>
public class MySqlDatabaseData : DatabaseData
{
#region Public Methods
public MySqlDatabaseData(ConnectionStringSettings connectionStringSettings, IConfigurationSource configurationSource)
: base(connectionStringSettings, configurationSource)
{
}
#endregion /// <summary>
/// Creates a <see cref="TypeRegistration"/> instance describing the <see cref="SqlDatabase"/> represented by
/// this configuration object.
/// </summary>
/// <returns>A <see cref="TypeRegistration"/> instance describing a database.</returns>
public override System.Collections.Generic.IEnumerable<Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.TypeRegistration> GetRegistrations()
{
yield return new TypeRegistration<Database>(
() => new MySqlDatabase(
ConnectionString,
Container.Resolved<IDataInstrumentationProvider>(Name)))
{
Name = Name,
Lifetime = TypeRegistrationLifetime.Transient
};
}
}
}

2.创建 MySqlDatabase 类

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Instrumentation;
using MySql.Data.MySqlClient; namespace Grass.MySqlDal.Data
{
/// <summary>
/// MySql 数据库访问基础
/// </summary>
[ConfigurationElementType(typeof(MySqlDatabaseData))]
public class MySqlDatabase : Database
{
/// <summary>
/// Initializes a new instance of the <see cref="SqlDatabase"/> class with a connection string.
/// </summary>
/// <param name="connectionString">The connection string.</param>
public MySqlDatabase(string connectionString)
: base(connectionString, MySqlClientFactory.Instance)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="SqlDatabase"/> class with a
/// connection string and instrumentation provider.
/// </summary>
/// <param name="connectionString">The connection string.</param>
/// <param name="instrumentationProvider">The instrumentation provider.</param>
public MySqlDatabase(string connectionString, IDataInstrumentationProvider instrumentationProvider)
: base(connectionString, MySqlClientFactory.Instance, instrumentationProvider)
{
} /// <summary>
/// Retrieves parameter information from the stored procedure specified in the <see cref="DbCommand"/> and populates the Parameters collection of the specified <see cref="DbCommand"/> object.
/// </summary>
/// <param name="discoveryCommand">The <see cref="DbCommand"/> to do the discovery.</param>
/// <remarks>The <see cref="DbCommand"/> must be a <see cref="SqlCommand"/> instance.</remarks>
protected override void DeriveParameters(System.Data.Common.DbCommand discoveryCommand)
{
MySqlCommandBuilder.DeriveParameters((MySqlCommand)discoveryCommand);
}
}
}

3.添加 config 支持

<?xml version="1.0"?>
<configuration>
<!--MySql 企业库支持-begin-->
<configSections>
<!--.声明一个数据库配置节-->
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,Microsoft.Practices.EnterpriseLibrary.Data" />
</configSections>
<dataConfiguration >
<!--.注册MySql数据提供者-->
<providerMappings>
<add name="MySql.Data.MySqlClient"
databaseType="Grass.MySqlDal.Data.MySqlDatabase, Grass.MySqlDal" />
</providerMappings>
</dataConfiguration>
<system.data>
<!--.注册MySql数据提供者工厂类-->
<DbProviderFactories>
<add
name="MySql Data Provider Factory"
invariant="MySql.Data.MySqlClient"
description="MySql Data Provider"
type="MySql.Data.MySqlClient.MySqlClientFactory" />
</DbProviderFactories>
</system.data>
<!--MySql 企业库支持-end-->
<connectionStrings>
<!--.数据库连接字符串-->
<add name="test_MySql"
connectionString="server=127.0.0.1;database=test;User Id=root;Password=123456;Persist Security Info=True;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
</configuration>

微软企业库支持 MySql的更多相关文章

  1. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  2. 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

    在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...

  3. 权限管理系统源码分析(ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存)

    系统采用最先进技术开发: (ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存) 大家可以加我QQ讨论 309159 ...

  4. C#利用微软企业库Enterprise Library配置mysql数据库

    在C#项目中,很多时候到要用到Enterprise Library.这里只是用一个很简单的小例子来演示一下Enterprise Library在VS2010中操作MySQL数据库的流程. 1,利用En ...

  5. 微软企业库5.0学习-Security.Cryptography模块

    一.微软企业库加密应用模块提供了两种加密: 1.Hash providers :离散加密,即数据加密后无法解密 2.Symmetric Cryptography Providers:密钥(对称)加密法 ...

  6. [EntLib]微软企业库5.0 学习之路——第一步、基本入门

    话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...

  7. 微软企业库5.0 学习之路——第四步、使用缓存提高网站的性能(EntLib Caching)

    首先先补习下企业库的Caching Application Block的相关知识: 1.四大缓存方式,在Caching Application Block中,主要提供以下四种保存缓存数据的途径,分别是 ...

  8. 微软企业库5.0 学习之路——第二步、使用VS2010+Data Access模块建立多数据库项目

    现在我就开始进入学习之路的第二步——Data Access模块,这个模块是企业库中被使用频率最高的模块,它很好的封装了数据库操作应用,为我们进行多数据库系统开发提供了便利,只需更改配置文件就 可以很快 ...

  9. 分享一个大型进销存供应链项目(多层架构、分布式WCF多服务器部署、微软企业库架构)

    项目源码下载:  WWW.DI81.COM 分享一个大型进销存供应链项目(多层架构.分布式WCF多服务器部署.微软企业库架构) 这是一个比较大型的项目,准备开源了.支持N家门店同时操作.远程WCF+企 ...

随机推荐

  1. 015 vue的项目

    一:搭建项目 1.框架 在原有的基础上 src: 2.index.html <!DOCTYPE html> <html lang="en"> <hea ...

  2. Linux如何将未分配的硬盘挂载出来

    情景说明 客户给了几台服务器,说500G硬盘,但到手操作的时候,使用命令查看,发现只有不到200的硬盘 [root@localhost ~]# df -h Filesystem Size Used A ...

  3. Tesserac初探

    安装Tesseract Windows 系统 下载可执行安装文件https://code.google.com/p/tesseract-ocr/downloads/list安装.或者https://d ...

  4. Java13新特性 -- ZGC:取消使用未使用的内存

    在JDK 11中,Java引入了ZGC,这是一款可伸缩的低延迟垃圾收集器,但是当时只是实验性的.号称不管你开了多大的堆内存,它都能保证在 10 毫秒内释放 JVM ,不让它停顿在那.但是,当时的设计是 ...

  5. OSI七层模型、TCP/IP五层模型

    OSI网络互连的七层框架:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层: <1>应用层 OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,为用户直接提供各种网络服 ...

  6. 设置ESXi宿主机开机自动启动虚拟机

    转载于 https://blog.csdn.net/Form_/article/details/71170813 在百度上面找了一圈都是讲ESXi6.0之前的版本,在VMware vSphere Cl ...

  7. PAT-2019年冬季考试-甲级 7-2 Block Reversing (25分) (链表转置)

    7-2 Block Reversing (25分)   Given a singly linked list L. Let us consider every K nodes as a block ( ...

  8. 大数据 -- Cloudera Manager(简称CM)+CDH构建大数据平台

    一.Cloudera Manager介绍 Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装.中心化管理.集群监控.报警等功 ...

  9. [Tool] Give some magic ! 那些奇思妙想的 Chrome 插件

    [ Reggy ] - 网站注册类自动填充临时信息,Magic! 但是对于非常规的网站无效.是什么意思呢? 就是说,它不是常规的 form 表单,而是使用 Js 操作数据,所以任何插件都无法自动识别. ...

  10. MBR和GPT分区

    MBR是传统的分区表类型,最大缺点是不支持容量大于2T的硬盘.GPT则弥补了MBR这个缺点,最大支持18EB的硬盘,是基于UEFI使用的磁盘分区架构. 其中,目前所有的Windows系统均支持MBR, ...