.NetCore中EFCore for MySql整理

时间:2023-12-29 19:33:20

一、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

.NetCore中EFCore for MySql整理

二、简单使用示例

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();

.NetCore中EFCore for MySql整理

三、说明

1.

这里需要注意了:

public DbSet<Blog> blog { get; set; }

如果mysql里的表名blog是小写的,这里就要定义成跟表名完全一样,否则会报错

2.Table() 表名的注释,目前还不支持。

更多:

Asp.Net Core WebAPI入门整理(三)跨域处理

Asp.Net Core WebAPI入门整理(二)简单示例

Asp.Net Core中Json序列化处理整理