zoukankan      html  css  js  c++  java
  • EF + Mysql

    在   NuGet 中安装 ef和 mysql

    Install-Package EntityFramework
    Install-Package MySql.Data.Entity.EF6
    Install-Package MySql.Data.Entity -Version 6.9.3

    执行完以后再 web.cong会自动多出如下代码 

     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>

    在connectionstring标签里加入如下片段

      <connectionStrings>
        <add name="DbConMySql" providerName="MySql.Data.MySqlClient" 
             connectionString="Data Source=192.168.0.220;Port=3306;
             Initial Catalog=NewMysql;uid=root;pwd=1;
             />
      </connectionStrings>

    添加实体

        public class Blog
        {
            public int BlogId { get; set; }
    
            public string Name { get; set; }
    
            public virtual List<Post> Posts { get; set; }
        }
        public class Post
        {
            public int PostId { get; set; }
    
            public string Title { get; set; }
    
            public string Content { get; set; }
    
            public int BlogId { get; set; }
    
            public virtual Blog Blog { get; set; }
        }

    添加数据上下文

         [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
        public class BloggingContext : DbContext
        {
           
            public BloggingContext()
                : base("DbConMySql")
            { }
    
            public DbSet<Blog> Blogs { get; set; }
    
            public DbSet<Post> Posts { get; set; }
        }

    测试ef

        using (BloggingContext db = new BloggingContext())
        {
             for (int i = 0; i < 10; i++)
             {
                 db.Blogs.Add(new Blog { Name = "小明" + i });
             }
             db.SaveChanges();
         } 

    在Mysql的cmd下查询:

    可以看到在数据库中已经生成了实体对应的两张表 和一张额外的自动迁移表(后面会说到这张表的作用)

    但是 查询blogs中的数据可以看出,出现了中文乱码的情况,参考网上的资料 说在连接字符窜中加上数据库编码Charset=utf8,但是我试了一下还是乱码,所以不得不从

    mysql数据库入手,这里我们手动更改mysql数据库的编码方式即可。具体步奏如下:

    1.  去mysql下找到my.in配置文件用记事本打开,找到 default-character-set=latin1,character-set-servier=latin1;将latin改成utf-8,保存即可;
    2. 重启mysql服务

     再一次执行ef测试语句,就变成中文的了。

  • 相关阅读:
    Mac 上所有的命令行相关问题的总结
    ThinkPHP中的统计查询方法
    织梦任意页面调用{dede:field.content/}的方法
    PHP isset()、empty()、is_null()的使用区别详解
    Dede更新提示DedeTag Engine Create File False的解决办法
    cookie 和session 的区别
    织梦后台如何设置手机站
    PHP时间戳和日期转换
    dede列表页调用
    dede图集内容页调用
  • 原文地址:https://www.cnblogs.com/drzhong/p/ef_mysql.html
Copyright © 2011-2022 走看看