由於本身WebMisCentral採用的是EF5.0,所以適配起來還是非常簡單的,下面看操作:
1.ElegantWM.WebUI層中(或者ElegantWM.DAL)通過NUGET下載MySQL.Data 6.7.5
2.修改Web.config如下:
<?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=152368 --> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> <sectionGroup name="common"> <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/> </sectionGroup> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <log4net configSource="log4netFile.xml"></log4net> <connectionStrings> <!--主資料庫,支援多資料庫--> <add name="SqlServerDB" providerName="System.Data.SqlClient" connectionString="Server=localhost;Uid=sa;Pwd=o;DataBase=CN9295;" /> <add name="DefaultDB" providerName="MySql.Data.MySqlClient" connectionString="Data Source=localhost;Port=3306;Initial Catalog=WMC;uid=assp;pwd=assp123;Character Set=utf8;" /> </connectionStrings> <appSettings> <!--系統名稱--> <add key="SysName" value="WMC-Client" /> <!--請到http://saas.chinacloudtech.com註冊賬號--> <add key="GroupCode" value="" /> <add key="SysId" value="" /> <add key="SSO" value="http://saas.chinacloudtech.com" /> <add key="webpages:Version" value="2.0.0.0"/> <add key="webpages:Enabled" value="true"/> <add key="PreserveLoginUrl" value="true"/> <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings> <system.web> ..... </system.web> <system.webServer> ...... </system.webServer> <runtime> ........ </runtime> <system.data> <DbProviderFactories> <remove invariant="MySql.Data.MySqlClient" /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data> </configuration>
注意上面藍色的部分是新增的,其他的都不用動。
其中:connectionStrings裡你可以隨便加不同型別或同型別的多個資料庫連線串,因為在WMC中資料庫連線串是細化到物件的,不同物件可以擁有不同的連線串,即操作不同的資料庫
3.修改ElegantWM.DAL的DBContext.cs,改成如下:
namespace ElegantWM.DAL { public class DB : DbContext { //public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //配置連線串,預設資料庫DefaultDB public DB(string _ConnectStr) : base(_ConnectStr) { //這是以前的做法 //Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings[_ConnectStr].ToString(); Database.SetInitializer<DB>(null); //this.Configuration.LazyLoadingEnabled = false; }
4.遺憾的是MySql裡的timestamp RowVersion在C# EF裡支援不好,需要將byte[] 修改成 DateTime,故你需要將ElegantWM.EntityModel裡面的Entity.cs和IEntity.cs中的RowVersion型別修改為DateTime,即可。
5.OK,你可以使用MYSQL了
6.MySql監控EF SQL的工具EFProf.exe,收費的,免費30天試用,用起來還是非常方便強大的。