有时,也许在新产品/解决方案开发的早期阶段,您可能会发现自己需要一种简单的方法来让客户编辑解决方案中的某些数据。
一种方法是为现有数据库的简单数据输入创建一个管理页面。
在这篇文章中,我将展示如何使用EF Core Power Tools和开源社区库在几分钟内完成此操作。
EF Core Power Tools 让您可以在几分钟内创建对现有数据库进行数据访问所需的所有代码。
设置网络应用程序
首先,创建一个新的 ASP.NET Core 6 Web 应用程序,如果使用默认模板,它将类似于以下内容:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
现在,您可以针对现有数据库安装和运行EF Core Power Tools逆向工程。
此处提供了有关如何使用该工具的指南。
对于此示例,在文件Models
夹中生成文件,并确保在您的项目中安装 EF Core 提供程序。
现在向文件添加一个连接字符串appsettings.Development.json
(嵌套在 下appsettings.json
):
{
"DetailedErrors": true,
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"Database": "Server=.\\SQLEXPRESS;Database=Chinook;Trusted_Connection=True;"
}
}
MySQL示例:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "server=localhost;user=root;database=customerdb;port=3306;password=root"
}
}
现在注册 DbContext 以供 ASP.NET Core 依赖注入使用。在之前添加此行var app = builder.Build();
builder.Services.AddSqlServer<ChinookContext>(builder.Configuration.GetConnectionString("Database"));
MySQL:
string dbConnectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<CustomerdbContext>(options => options.UseMySql(dbConnectionString, ServerVersion.AutoDetect(dbConnectionString)));
builder.Services.AddCoreAdmin();
添加 CoreAdmin
CoreAdmin是由Ed Andersen创建的 NuGet 包,可在您的应用中启用管理页面。
用于 ASP.NET Core 的全自动管理站点生成器。添加一行代码,得到很多东西。特点包括:
- 所有实体的数据网格
- 在网格上搜索、过滤、排序等
- 带有验证的 CRUD 屏幕
- 图片上传的二进制支持
- 外键导航
- 降价编辑器
- ...和一个很棒的黑暗主题!
要将 CoreAdmin 添加到您的应用程序,请在之前添加 AddCoreAdmin 行var app = builder.Build();
builder.Services.AddSqlServer<ChinookContext>(builder.Configuration.GetConnectionString("Database"));
builder.Services.AddCoreAdmin();
var app = builder.Build();
并在app.Run()
之前添加这一行;
app.MapDefaultControllerRoute();
运行应用程序并导航到/CoreAdmin
您拥有它 - 一个成熟的管理网页!
自述文件中描述了许多配置和安全选项。
MySQL的Program.cs
using WebApplication4.Models;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
string dbConnectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<CustomerdbContext>(options => options.UseMySql(dbConnectionString, ServerVersion.AutoDetect(dbConnectionString)));
builder.Services.AddCoreAdmin();
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.MapDefaultControllerRoute();
app.Run();