ef core mysql 字符集_ef core操作mysql

ef core操作mysql当前官方提供的最新版本是:8.0.1

需要安装的包分别是:

MySql.Data

MySql.Data.EntityFrameworkCore

MySql.Data.EntityFrameworkCore.Design

其他的安装包不用安装,如果安装了其他版本的依赖包则会报错;

数据迁移需要导入Microsoft.EntityFrameworkCore.Design,版本是2.0.0;

尝试了最新版本的2.1.1但是不行,在数据操作时候报错。

接下来就可以连接mysql了

public classBlog

{public int Id { get; set; }public string Title { get; set; }public DateTime CreateTime { get; set; }

}

public classAppDbContext:DbContext

{publicAppDbContext()

{

}public DbSet Blogs { get; set; }protected override voidOnConfiguring(DbContextOptionsBuilder optionsBuilder)

{

//SslModel=None 这和ssl协议有关系。如果不指定会报错

optionsBuilder.UseMySQL("server=localhost;user=root;database=test;port=3306;password=****;SslMode=None");

}

}

5507db3d21a636082d7c4994e89e71d2fc6.jpg

195b44b025be5d64c946c7c6ccada621eca.jpg

1 classProgram2 {3

4 static void Main(string[] args)5 {6

7 using (var db = newAppDbContext())8 {9 db.Database.EnsureCreated();10 db.Blogs.Add(new Blog { Title = "http://blogs.msdn.com/adonet",CreateTime =DateTime.Now});11 var count =db.SaveChanges();12 Console.WriteLine("{0} records saved to database", count);13

14 Console.WriteLine();15 Console.WriteLine("All blogs in database:");16 foreach (var blog indb.Blogs)17 {18 Console.WriteLine("- {0}", blog.Title);19 }20 }21

22 Console.ReadLine();23 }24 }

View Code

运行结果如图:

2f3a347d0bbc0ca5f2ead09adc2b3996.png

操作成功。

查询数据库结果如图:

438b7ca775cdb47cbaebe335e8103f66.png

efcore操作mysql数据库成功;

当前ef core mysql的包对数据迁移不是太好:

1.在首次创建迁移时,会把没有迁移前生成的表在生成一遍:

f3349a25cb561633069c514934c01732.png

解决方式是:

注释掉已经存在的表和关系代码。

2.首次进行迁移执行update-database的时候,会报错:

MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'test.__efmigrationshistory' doesn't exit

解决方式是:

手动创建这个 'test.__efmigrationshistory' 表

CREATE TABLE `__EFMigrationsHistory`

(

`MigrationId` nvarchar(150) NOT NULL,

`ProductVersion` nvarchar(32) NOT NULL,

PRIMARY KEY(`MigrationId`)

);

然后执行update-database

这样数据迁移就能完成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值