使用EntityFramework6连接MySql数据库(code first方式)
demo托管地址:http://git.oschina.net/uustudy/ASP.NET-CodeFirst-MySQL-Demo.git
之前的是db first(地址:http://www.cnblogs.com/24la/p/ef6-mysql.html)
首先和DB First那篇文章一样,准备工具都要一样的。安装包顺序也是一样的。
web.config文件中加入这些:
<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> <connectionStrings> <add name="MyContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=MyBook;user id=root;password=123456;" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
新建User类
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Web; namespace CodeFirstMysql { public class User { public int Id { get; set; } public string UserName { get; set; } //默认string映射到mysql里是longtext类型的,加长度之后就变成varchar了
[MaxLength(30)] public string PassWord { get; set; } } }
新建MyContext类,此类继承DbContext
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; namespace CodeFirstMysql { public class MyContext : DbContext { public MyContext() : base("name=MyContext")//web.config中connectionstring的名字 { } public DbSet<User> Users { get; set; } } }
Default.aspx.cs文件内容:
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace CodeFirstMysql { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { InitData(); } private void InitData() { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyContext>()); var context = new MyContext();
//插入一行值 context.Users.Add(new User {UserName = "EF6-MySQL-Code-First"}); context.SaveChanges(); } } }
运行之后看效果:
show tables:
desc table:
表中数据:
-------------------------------------------------
保持专注,只做一件事,做好这件事!@
-------------------------------------------------