PM>Update-Package EntityFramework
PM> Install-Package MySQL.Data.Entity -Pre
Web.config中自动添加MySQL Provider
连接MySQL数据库
mysql属性
mysql连接字符串
mysql连接字符串:
server=192.168.97.30;
user id=sa;
password=Videocomm1;
persistsecurityinfo=True;
database=mvc151012
原连接字符串:
<connectionStrings>
<add name="DefaultConnection"
connectionString="
Data Source=(LocalDb)\v11.0;
AttachDbFilename=|DataDirectory|\aspnet-WebApplication5-20151012104750.mdf;
Initial Catalog=aspnet-WebApplication5-20151012104750;
Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
改为:
<connectionStrings>
<add name="DefaultConnection"
connectionString="
server=192.168.97.30;
user id=sa;
password=Videocomm1;
persistsecurityinfo=True;
database=mvc151012"
providerName="SMySql.Data.MySqlClient" />
</connectionStrings>
public class MySqlHistoryContext:HistoryContext
{
public MySqlHistoryContext(DbConnection exitingConnection,string defaultSchema)
:base(exitingConnection,defaultSchema)
{ }
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<HistoryRow>().Property(h => h.MigrationId).HasMaxLength(100).IsRequired();
modelBuilder.Entity<HistoryRow>().Property(h => h.ContextKey).HasMaxLength(200).IsRequired();
}
}
public class MySqlConfiguration:DbConfiguration
{
public MySqlConfiguration()
{
SetHistoryContext("MySql.Data.MySqlClient",
(conn, schema) => new MySqlHistoryContext(conn, schema));
}
}
public class MySqlInitializer:IDatabaseInitializer<ApplicationDbContext>
{
public void InitializeDatabase(ApplicationDbContext context)
{
if (!context.Database.Exists())
{
context.Database.Create();
}
else
{
var strQuery = var strQuery = "SELECT COUNT(*) FROM
information_schema.tables WHERE table_schema = 'mvc151012' AND table_name = '__MigrationHistory'";
var migrationHistoryTableExits
= ((IObjectContextAdapter)context).ObjectContext.ExecuteStoreQuery<int>(strQuery);
if (migrationHistoryTableExits.FirstOrDefault() == 0)
{
context.Database.Delete();
context.Database.Create();
}
}
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
static ApplicationDbContext()
{
Database.SetInitializer(new MySqlInitializer());
}
public ApplicationDbContext()
: base("DefaultConnection")
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
《ASP.NET Identity: Using MySQL Storage with an EntityFramework MySQL Provider (C#)》