先用PM命令安装EF6,MySQL提供的EF实现新增、删除、修改是采用存储过程实现的

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()]
public string Model { get; set; }
public int Year { get; set; }
[MaxLength()]
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 == ); //根据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(), reader.GetString(), reader.GetString());
}
}
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
Console.WriteLine(ex.Message);
}
}

Entity Framework6 访问MySQL的更多相关文章

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

      一.创建MySql存储过程 1, CREATE PROCEDURE `InsertAlarmInfo`(in businessindex int, in providerindex int, in ...

  2. Entity Framework连接Mysql数据库并生成Model和DAL层

    Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架.相比于LINQ TO SQL,EF框架具有很明显的优势: EF框架 ...

  3. Entity Framework6 with Oracle

    Entity Framework6 with Oracle(可实现code first) Oracle 与2个月前刚提供对EF6的支持.以前只支持到EF5.EF6有很多有用的功能 值得升级.这里介绍下 ...

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

    声明 :  数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础. 这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, ...

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

    原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...

  6. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

  7. Entity Framework6测试使用

    Entity Framework6安装完成后测试下 上一篇中完成了对Entity Framework6的下载安装,一下做一个简单的数据添加测试 1.创建一个简单的控制台测试项目 2.创建实体数据模型 ...

  8. Entity Framework6的在线下载安装

    Entity Framework6的在线下载安装 Entity Framework 简单介绍: 看名字就知道肯定是关于数据模型的…… Entity Framework:微软官方提供的ORM()工具,O ...

  9. android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?

    通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...

随机推荐

  1. CentOs6.5中安装和配置vsftp

    一.vsftp安装篇 复制代码代码如下: # 安装vsftpdyum -y install vsftpd# 启动service vsftpd start# 开启启动chkconfig vsftpd o ...

  2. python ImportError: No module named 的问题

    https://my.oschina.net/leejun2005/blog/109679 python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所 ...

  3. Java模板引擎 HTTL

    新一代java模板引擎典范 Beetl http://www.oschina.net/p/httl HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引 ...

  4. 如何利用RMAN Debug和10046 Trace来诊断RMAN问题?

    学习转摘:https://blogs.oracle.com/Database4CN/entry/%E5%A6%82%E4%BD%95%E5%88%A9%E7%94%A8rman_debug%E5%92 ...

  5. Android Bitmap和Canvas学习笔记 [转]

    原文:http://www.cnblogs.com/feisky/archive/2010/01/10/1643460.html 位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的. ...

  6. 【svn】 SVN错误:Attempted to lock an already-locked dir

    出现这个问题后使用“清理”功能,如果还不行,就直接到上一级目录,再执行“清理”,然后再“更新”. 有时候如果看到某个包里面的文件夹没有SVN的标志,直接用“Ctrl+Delete”手工删除,然后“清理 ...

  7. [转]Linux环境下查看线程数的几种方法

    1.cat /proc/${pid}/status 2.pstree -p ${pid} 3.top -p ${pid} 再按H,或者直接输入 top -bH -d 3 -p  ${pid} top ...

  8. android 组合控件接收不到点击事件的问题

    android点击事件的传播是有子控件传给父控件,如果子控件处理过了,父控件不再处理,所以要想让组合控件接收点击事件,必须屏蔽子控件的点击事件. 设置组合控件的clickable和focusable属 ...

  9. SPOJ #440. The Turtle´s Shortest Path

    Coding a Dijkstra is not hard. %70 of my time spent on tackling TLE, as my last post. Dijkstra works ...

  10. SSH_框架整合3-删除

    一.普通删除 1 完善src中 类: (1)EmployeeDao.java中: //2 删除 public void delete(Integer id){ String hql="DEL ...