Entity Framework6 访问MySQL

先用PM命令安装EF6

Install-Package EntityFramework

配置修改如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="myDb" providerName="MySql.Data.MySqlClient" connectionString="server=192.168.0.2;uid=root;pwd=123456;database=mydb2;" />
  </connectionStrings>
  <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>

数据库实体及上下文定义

 [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class Parking : DbContext
    {
        public DbSet<Car> Cars { get; set; }
        public Parking()
            : base("name=myDb")
        {
        }
        // Constructor to use on a DbConnection that is already opened
        public Parking(DbConnection existingConnection, bool contextOwnsConnection)
            : base(existingConnection, contextOwnsConnection)
        {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Car>().MapToStoredProcedures();
        }
    }

    public class Car
    {
        public int CarId { get; set; }
        [MaxLength(100)]
        public string Model { get; set; }
        public int Year { get; set; }
        [MaxLength(200)]
        public string Manufacturer { get; set; }
    }

EF调用示例

   public static void EFExecuteExample()
        {
            //string connectionString = ConfigurationManager.ConnectionStrings["mydb"].ConnectionString;
            //using (MySqlConnection connection = new MySqlConnection(connectionString))
            //{
            //    // Create database if not exists
            //    using (Parking contextDB = new Parking(connection, false))
            //    {
            //        contextDB.Database.CreateIfNotExists();
            //    }
            //    connection.Open();
            //    //MySqlTransaction transaction = connection.BeginTransaction();
            //    try
            //    {
            //        // DbConnection that is already opened
            //        using (Parking context = new Parking(connection, false))
            //        {
            //            // Interception/SQL logging
            //            context.Database.Log = (string message) => { Console.WriteLine(message); };
            //            // Passing an existing transaction to the context
            //           // context.Database.UseTransaction(transaction);
            //            // DbSet.AddRange
            //            List<Car> cars = new List<Car>();
            //            cars.Add(new Car { Manufacturer = "Nissan", Model = "370Z", Year = 2012 });
            //            cars.Add(new Car { Manufacturer = "Ford", Model = "Mustang", Year = 2013 });
            //            cars.Add(new Car { Manufacturer = "Chevrolet", Model = "Camaro", Year = 2012 });
            //            cars.Add(new Car { Manufacturer = "Dodge", Model = "Charger", Year = 2013 });
            //            context.Cars.AddRange(cars);
            //            context.SaveChanges();
            //        }
            //        //transaction.Commit();
            //    }
            //    catch(Exception ex)
            //    {
            //        Console.WriteLine(ex.Message);
            //        //transaction.Rollback();
            //        throw;
            //    }
            //}

            //try
            //{
            //    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Parking>());
            var context = new Parking();
            //    //插入一行值
            //    context.Cars.Add(new Car { Manufacturer = "Nissan", Model = "370Z", Year = 2012 });
            //    int result = context.SaveChanges();
            //}
            //catch (Exception ex)
            //{
            //    Console.WriteLine(ex.Message);
            //}

            Car car = context.Cars.First(item => item.CarId == 1); //根据ID查询

            var cars = context.Cars.Where(item => item.Model == "370Z"); // 条件查找             cars = context.Cars.Where(item => item.Year > 2012); 

        }

MySQL原生访问

 static void MySqlDbTest()
        {
            MySql.Data.MySqlClient.MySqlConnection conn;
            string myConnectionString;
            myConnectionString = ConfigurationManager.ConnectionStrings["myDb"].ConnectionString;
            try
            {
                conn = new MySql.Data.MySqlClient.MySqlConnection();
                conn.ConnectionString = myConnectionString;
                MySqlCommand cmd = conn.CreateCommand();
                cmd.CommandType = System.Data.CommandType.Text;
                cmd.CommandText = "select * from users";
                conn.Open();
                using (MySqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    while (reader.Read())
                    {
                        Console.WriteLine("id={0},firstname={1},lastname={2}", reader.GetInt32(0), reader.GetString(1), reader.GetString(2));
                    }
                }
            }
            catch (MySql.Data.MySqlClient.MySqlException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
时间: 2024-10-27 12:07:24

Entity Framework6 访问MySQL的相关文章

Entity Framework访问MySQL数据库的存储过程并获取返回值

一.创建MySql存储过程 1, CREATE PROCEDURE `InsertAlarmInfo`(in businessindex int, in providerindex int, in alarmtype int, in alarmlevel int,in detecttime DateTime, in alarmdescription varchar(50), in alarmphenomenon int, in subBusinessType int, in businessEn

Entity Framework with MySQL 学习笔记一(安装)

声明 :  数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础. 这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, 感恩. Entity Framework (缩写EF) 是微软的一个框架.作用是处理面向对象与关系数据库的映射问题. 以往我们都是ADO.NET来访问数据库,connection.open() -> sql command ->  executenonquery | dataReader ->

C#访问MySQL数据库(winform+EF)

原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winform 访问MYSQL,当然使用winfrom,还是wfp,以及其他的技术这里不讨论,个人觉得这个比较上手快. http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html 1.安装MYSQl数据库,这里略过,可以参考此文档进行安装.

Entity Framework6 with Oracle

Entity Framework6 with Oracle(可实现code first) Oracle 与2个月前刚提供对EF6的支持.以前只支持到EF5.EF6有很多有用的功能 值得升级.这里介绍下如何支持Oracle   一.Oracle 对.net支持的一些基础知识了解介绍. 1.早年的时候,微软自己做的有 System.Data.OracleClient. 现在已经成了过期类了.性能等都不是很好. 2.Oracle 官方出的odp.net  Oracle.DataAccess.dll(非

Python3 pymysql 访问MySql数据库

使用pymysql来访问MySQL数据库,注意,有些使用PyMySQL,Python2是mysqldb 如没该module则安装:pip install pymysql (本人Java转Python,还有java编写习惯,有错误请及时提出,相互交流) 1.定义获取数据库连接的Module, DataBase.py import pymysql class MySQLDB: __config={ 'host' : '127.0.0.1', 'port' : 3306, 'user' : 'root

spring boot jpa 访问 mysql

spring boot 访问 mysql方式二:spring data jpa 为什么使用 jpa :第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了. 如何使用:在 pom 文件中引入依赖 <!--jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr

Spring Boot2 系列教程 (七) | 使用 Spring Data JPA 访问 Mysql

前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spring Data JPA 之前,首先介绍 Hibernate . Hibernate 使用 O/R 映射 (Object-Relation Mapping) 技术实现数据访问, O/R 映射即将领域模型类与数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无需关注数据库相关技术. Hibernate 主导了 EJB 3.0 的 JPA 规范, JPA 即

fedora python访问mysql

1 下载驱动库 http://sourceforge.net/projects/mysql-python/ 2, yum install mysql-dev* yum install python-dev* 3, python setup.py install fedora python访问mysql,布布扣,bubuko.com

在nginx中使用lua直接访问mysql和memcaced达到数据接口的统一

安装nginx参见<nginx+lua+redis构建高并发应用> 让nginx 中的nginx_lua_module支持mysql 和memcache 下载 https://github.com/agentzh/lua-resty-memcached https://github.com/agentzh/lua-resty-mysql 对于访问接口的统一有很多的处理方式,这里介绍使用nginx lua 访问mysql并用memcache缓存起来. 配置如下: ... location /ge