一、MySql官方提供了Ef Core对MySql的支持,但现在还处于预览版
Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package MySql.Data.EntityFrameworkCore.Design -Pre
当前程序包依赖Microsoft.EntityFrameworkCore,目前没找到API文档啥的,MySql.Data.EntityFrameworkCore.Design的用法也没 找到。
Nuget包地址 :https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/7.0.7-m61
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore.Design/6.10.1-beta
二、简单使用示例
1.手写数据库上下文
/// <summary> /// 数据库上下文 /// </summary> public class Md5Context : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseMySQL("server=127.0.0.1;port=3306;database=md5data;uid=sa;pwd=123;"); } public virtual DbSet<Md5Data> Md5Data { get; set; } }
2.手写实体数据库映射,Model
[Table("Md5Data")] //当前预览版中Table指定名称还不支持 public class Md5Data { [Key] public int DataID { get; set; } public string PlainText { get; set; } public string UpperCase32 { get; set; } public string UpperCase16 { get; set; } public int DencryptCount { get; set; } public int EncryptCount { get; set; } public DateTime AddTime { get; set; } }
3.调试运行
Md5Context _Context = new Md5Context(); List<Md5Data> list = _Context.Md5Data.ToList(); return list.Select(q => q.PlainText).ToList();
三、说明
1.
这里需要注意了:
public DbSet<Blog> blog { get; set; }
如果mysql里的表名blog是小写的,这里就要定义成跟表名完全一样,否则会报错
2.Table() 表名的注释,目前还不支持。
更多:
Asp.Net Core WebAPI入门整理(三)跨域处理