• 使用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:

    表中数据:

  • 相关阅读:
    FJoi2017 1月21日模拟赛 comparison(平衡树+thita重构)
    juruo的刷题&博文祭
    [bzoj4247][挂饰] (动规+排序)
    FJoi2017 1月20日模拟赛 直线斯坦纳树(暴力+最小生成树+骗分+人工构造+随机乱搞)
    FJoi2017 1月20日模拟赛 交错和(等差数列+rmq)
    FJoi2017 1月20日模拟赛 恐狼后卫(口糊动规)
    【spoj 5971】lcmsum
    【bzoj 4025 改编版】graph
    【CF 718C】fibonacci
    【CF 482E】ELCA
  • 原文地址:https://www.cnblogs.com/24la/p/ef6-codefirst-mysql.html
Copyright © 2020-2023  润新知