Entity Framework6 访问MySQL
先用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的更多相关文章
- Entity Framework访问MySQL数据库的存储过程并获取返回值
一.创建MySql存储过程 1, CREATE PROCEDURE `InsertAlarmInfo`(in businessindex int, in providerindex int, in ...
- Entity Framework连接Mysql数据库并生成Model和DAL层
Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架.相比于LINQ TO SQL,EF框架具有很明显的优势: EF框架 ...
- Entity Framework6 with Oracle
Entity Framework6 with Oracle(可实现code first) Oracle 与2个月前刚提供对EF6的支持.以前只支持到EF5.EF6有很多有用的功能 值得升级.这里介绍下 ...
- Entity Framework with MySQL 学习笔记一(安装)
声明 : 数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础. 这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, ...
- C#访问MySQL数据库(winform+EF)
原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
- Entity Framework6测试使用
Entity Framework6安装完成后测试下 上一篇中完成了对Entity Framework6的下载安装,一下做一个简单的数据添加测试 1.创建一个简单的控制台测试项目 2.创建实体数据模型 ...
- Entity Framework6的在线下载安装
Entity Framework6的在线下载安装 Entity Framework 简单介绍: 看名字就知道肯定是关于数据模型的…… Entity Framework:微软官方提供的ORM()工具,O ...
- android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?
通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...
随机推荐
- sitemesh使用步骤
使用sitemesh的步骤 1. 添加jar文件到classpath 2. 在web.xml中增加过滤器 <!-- Sitemesh --> <filter> <filt ...
- ChinaUnix上的帮助手册还不错!
无意中发现ChinaUnix上的Linux帮助手册还真不错啊,有时间多看一看: http://man.chinaunix.net/linux/debian/debian_learning/index. ...
- jsoncpp用法通俗易懂之解析
刚工作不久,最近遇到一个要解析一个web服务器发过来的json格式的文件,文件如下: { "global": { "renew": "true&quo ...
- 【性能测试】性能测试总结<四>
性能测试常见指标 性能测试说白了就是通过工具模拟多个用户对被测系统进行访问.然后查看系统对于多个用户发来请求的处理能力. 左边的两个小人表示两个用户,向右边服务器发送请求,然后得到服务器 ...
- Python(正则 Time datatime os sys random json pickle模块)
正则表达式: import re #导入模块名 p = re.compile(-]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表 ...
- SSH_框架整合7--整个项目CODE
一 架构 1Action类 2 配置文件 3 View页面 二 Code 1 src (1)com.atguigu.ssh.actions >EmployeeAction.java packa ...
- 剑指offer系列31-----二叉树的下一个节点
[题目]给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回. 注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. package com.exe7.offer; /** ...
- ab压测参数说明
ab是apache自带的压力测试工具,非常实用.ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问.它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也 ...
- Saltstack系列2:Saltstack远程执行命令
命令 命令格式: salt '<操作目标>' <方法>[参数] 例: salt 'wx' cmd.run 'free -m' #查看被控主机内存使用情况 常用参数 针对< ...
- Python builtins
>>> dir (__builtins__) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseExcepti ...