一、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入门整理(三)跨域处理