先用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. Android 不同文件名介绍

    Android 不同文件名介绍

  2. @media_screen

    html,body{ margin:0; padding:0; }body{ background:#0f0;} /* @media screen and (min-width: 800px)and( ...

  3. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

  4. 错误:javax.servlet.jsp.PageContext can not be to a type

    在写Jsp文件时,引入script源文件(<script type="text/javascript" src="${pageContext.request.con ...

  5. HTML5 中已经可以用 Ajax 上传文件了,而且代码非常简单,借助 FormData 类即可发送文件数据。

    <?phpif (isset($_POST['upload'])) { var_dump($_FILES); move_uploaded_file($_FILES['upfile']['tmp_ ...

  6. 在Linux中使用VS Code编译调试C++项目

    最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS Code在Linux下的安装这里就不提了,不管是CentO ...

  7. 限制页面内部链接访问源-HTML注释

        不知道大家有没有碰到过这样一个问题:我修改的是别人的网页,他的超连接是指向一个服务器的某个HTML文件,我把超连接地址修改成了我本地机器的跟首页 同一目录下的一个HTML文件,却发现超连接根本 ...

  8. ASP.NET ViewState详解

    ASP.NET ViewState详解[转载] 作者:Infinities Loop 概述 ViewState是一个被误解很深的动物了.我希望通过此文章来澄清人们对ViewState的一些错误认识.为 ...

  9. FLEX 特效

    一.简介: flex特效是ria应用程序的rich的重要组成部分. EffectManager类管理所有的特效实例以避免不必要的定时器和方法调用造成的内内存使用过大.一个效果由两部分组成:一是效果的E ...

  10. Chrome插件开发入门(二)——消息传递机制

    Chrome插件开发入门(二)——消息传递机制   由于插件的js运行环境有区别,所以消息传递机制是一个重要内容.阅读了很多博文,大家已经说得很清楚了,直接转一篇@姬小光 的博文,总结的挺好.后面附一 ...