标签:
最近,项目考虑到安装部署方面;希望可以使用MySQL数据库,毕竟比较小巧、方便。
后来,自己通过测试发现EF可以支持mysql数据库,而且也可以通过codefirst模式进行开发;使用起来,跟sqlserver几乎一样。但是,在使用中遇到一些小问题,希望以后大家少走弯路。以下截图,是通过别人的博客copy的(偷懒)。
通过NuGet安装MySql
之后,看到项目多出相关几个dll文件
接下來加入 MySQL 的 Model
无法使用EF
需要加入Provider
這時需要在 App.config/Web.Config加入以下 Provider,然後按下存檔
<providerinvariantName="MySql.Data.MySqlClient"type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>完整設定檔如下:
<?xmlversion="1.0"encoding="utf-8"?><configuration><configSections><!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --><sectionname="entityFramework"type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"requirePermission="false"/></configSections><startup><supportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.5"/></startup><entityFramework><defaultConnectionFactorytype="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"><parameters><parametervalue="v11.0"/></parameters></defaultConnectionFactory><providers><providerinvariantName="System.Data.SqlClient"type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/><providerinvariantName="MySql.Data.MySqlClient"type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider></providers></entityFramework></configuration>
這時候就可以加入MySQL Model
以下是codefirst执行时候,遇到的问题
1>修改配置文件config
<add name="MySqlDbContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=testdb;Charset=utf8;user id=root;password=;" providerName="MySql.Data.MySqlClient" />
注意:一定加上Charset=utf8,否则执行新增时,会把乱码添加进去
2>EF执行迁移报错,找不到mysql.entity.client
标签:
原文地址:http://www.cnblogs.com/wangjx/p/4799251.html