转载:EntityFramework 6.0< Code First > 连接 Mysql数据库
2014-09-12 18:10
295 查看
转载自:http://blog.csdn.net/kmguo/article/details/19650299
网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了。找了很久,总算是配置好了,现在分享一下。
一,安装:
1、开发环境: VS2013与EF6
2、Mysql数据库为:Mysql Server 6.0
3、安装:Mysql for Visual Studio 1.1.1
下载位置:https://cdn.mysql.com/Downloads/MySQLInstaller/mysql-visualstudio-plugin-1.1.1.msi
4、安装 Mysql Connector/Net 6.8.3 GA
下载位置:http://dev.mysql.com/downloads/connector/net/
二,引用dll:
1、采用Nuget安装EF6.0.2;
2、采用Nuget安装MySql.Data.Entity.EF6
注意:要采用Nuget进行安装,否则可能会缺少相应的dll或者是配置信息
三、配置 web.config或app.config
1、将entitframework节点替代为:
<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>
2、添加 ConnectionString节点:
<connectionStrings>
<add name="MyContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=数据库名称;user id=Mysql的登录用户名;password=Mysql server密码;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
四、测试C#代码
[csharp] view plaincopy
using System.Data.Entity;
namespace StudyEF
{
public class MyContext : DbContext
{
public MyContext() : base("name=MyContext")
{
}
public DbSet<Data> Datas { get; set; }
}
public class Data
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
var context = new MyContext();
context.Datas.Add(new Data{Name="EF6-MySql"});
context.SaveChanges();
}
}
}
五、在Mysql的cmd下查询:
六、采用Database First:
这种实现方式与在Sql server下的Database的做法是相同的,但是有时会连接不上Mysql。我一开始就尝试采用Database来连接Mysql,但是在VS2013里一直无法连接到Mysql server。所以我才采用了上面的Code First。但是当我用Code Frist成功之后,我发现,我的VS2013也能够连接到Mysql server了。真是神奇,具体原因我还不清楚。
网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了。找了很久,总算是配置好了,现在分享一下。
一,安装:
1、开发环境: VS2013与EF6
2、Mysql数据库为:Mysql Server 6.0
3、安装:Mysql for Visual Studio 1.1.1
下载位置:https://cdn.mysql.com/Downloads/MySQLInstaller/mysql-visualstudio-plugin-1.1.1.msi
4、安装 Mysql Connector/Net 6.8.3 GA
下载位置:http://dev.mysql.com/downloads/connector/net/
二,引用dll:
1、采用Nuget安装EF6.0.2;
2、采用Nuget安装MySql.Data.Entity.EF6
注意:要采用Nuget进行安装,否则可能会缺少相应的dll或者是配置信息
三、配置 web.config或app.config
1、将entitframework节点替代为:
<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>
2、添加 ConnectionString节点:
<connectionStrings>
<add name="MyContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=数据库名称;user id=Mysql的登录用户名;password=Mysql server密码;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
四、测试C#代码
[csharp] view plaincopy
using System.Data.Entity;
namespace StudyEF
{
public class MyContext : DbContext
{
public MyContext() : base("name=MyContext")
{
}
public DbSet<Data> Datas { get; set; }
}
public class Data
{
public int Id { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
var context = new MyContext();
context.Datas.Add(new Data{Name="EF6-MySql"});
context.SaveChanges();
}
}
}
五、在Mysql的cmd下查询:
六、采用Database First:
这种实现方式与在Sql server下的Database的做法是相同的,但是有时会连接不上Mysql。我一开始就尝试采用Database来连接Mysql,但是在VS2013里一直无法连接到Mysql server。所以我才采用了上面的Code First。但是当我用Code Frist成功之后,我发现,我的VS2013也能够连接到Mysql server了。真是神奇,具体原因我还不清楚。
相关文章推荐
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- EntityFramework 6.0< Code First > 连接 Mysql数据库(转)
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- EntityFramework 6.0< Code First > 连接 Mysql数据库
- EFCodeFirst安装失败(包括EntityFrameWork安装) 转载自 http://blog.csdn.net/yangzhencheng_001/article/details/6684
- 使用EF CodeFirst连接MySql数据库
- Windows平台下Codeblocks连接Mysql数据库
- <转载>.NET(C#)连接各类数据库-集锦
- 【转载】如何用Eclipse连接MySQL数据库(傻瓜篇)
- ef-->code first-->Migrations
- NuGet EF4 Code-First Migration Command (PM>)
- C语言连接MySql数据库(CodeBlocks)
- 自己来控制EntityFramework4.1 Code-First,逐步消除EF之怪异现象
- 转载:连接MySQL数据库的两种方式介绍
- VClient 无法连接Vcenter <转载>
- EFCodeFirst安装失败(包含EntityFrameWork安装)解决规划
- MVC3的EFCodeFirst安装失败(包含EntityFrameWork安装)解决规划
- EFCodeFirst安装失败(包含EntityFrameWork安装)解决规划