ASP.NET Core 下使用 EFCore 和 .NET Framework 下使用有点区别。
参考官方文档:https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html
1.创建 ASP.NET Core Web应用 项目
创建新的项目的 Program.cs 文件中使用了顶级语句,与NET5 有所区别。
.NET 6 的 创建的项目使用了C# 顶级语句
https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/tutorials/top-level-statements
2.引入相关nuget包
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.10" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.10">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.10">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MySql.Data" Version="8.0.31" />
<PackageReference Include="MySql.EntityFrameworkCore" Version="6.0.7" />
<PackageReference Include="NLog.Web.AspNetCore" Version="5.1.4" />
</ItemGroup>
3.创建AppDbContext类
注意: this.Database.EnsureCreated();初始化数据库,如果不存在数据库会创建。
using Microsoft.EntityFrameworkCore;
public class AppDbContext: DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) {
// 初始化数据库,如果不存在数据库会创建
this.Database.EnsureCreated();
}
public DbSet<Models.User> User{ get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// optionsBuilder.UseMySQL("server=localhost;database=library;user=user;password=password");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>(entity =>
{
entity.HasKey(e => e.id);
});
}
}
4.添加连接字符串配置appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"MySQLConnection": "server=127.0.0.1;port=3306;uid=root;database=db1"
}
}
在var builder = WebApplication.CreateBuilder(args);代码下添加文章来源:https://www.toymoban.com/news/detail-469436.html
builder.Services.AddDbContext<AppDbContext>(opt =>
{
opt.UseMySQL(builder.Configuration.GetConnectionString("MySQLConnection"));
});
最终可以在Controller相关代码中注入 AppDbContext 来操作数据库。文章来源地址https://www.toymoban.com/news/detail-469436.html
到了这里,关于ASP.NET Core NET6 EFCore MySQL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!