目录
背景
介绍
使用代码
服务设置
提供在页面中使用的DbService
Index页
创建页面
编辑页面
详细信息页面
删除页面
在本技巧中,您将了解一种无需在ASP.NET Core Web应用程序中使用Microsoft EF Core即可运行SQL Server过程的简便方法。
- 下载演示932.9 KB
我是一名老软件开发人员,已有20多年的时间,在我的一生中编写了很多独特的代码。在处理数据的实践中,我通常使用SQL Server和存储过程来执行任何复杂的查询。在过去的一年中,我尝试使用Microsoft EF Core框架,但是我始终缺乏以前使用存储过程时的功能。最后,我的耐心耗尽了,我为ASP.NET Core Web应用程序中的现代数据操作创建了一个最低限度的简单UkrGuru.SqlJson程序包,现在我想与您分享这些知识...
介绍在本文中,我将介绍如何用ASP.NET Core Web应用程序中的UkrGuru.Json程序包替换Microsoft EF Core 。UkrGuru.Json程序包简单易学,易于使用,并且快如闪电!
如果您还不知道我的UkrGuru.SqlJson软件包,那么我建议您阅读此篇文章 UkrGuru.SqlJson——你的SQL Server和.NET 5之间的链接...
利用这些知识,我首先创建了一个Contact模型,然后生成了脚手架项目...
public class Contact
{
[Key]
public int Id { get; set; }
[Required]
public string FullName { get; set; }
[Required]
public string Email { get; set; }
public string Notes { get; set; }
}
现在,我将告诉您要应用我的程序包需要做什么。
服务设置我们需要在您的ConfigureServices函数中初始化DbService和ConnString:
public void ConfigureServices(IServiceCollection services)
{
// DbService Init
services.AddScoped();
// DbHelper Init
DbHelper.ConnString = Configuration.GetConnectionString("SqlJsonConnection");
}
提供在页面中使用的DbService
请在下面的页面中替换DbContext为UkrGuru.SqlJson.DbService:
private readonly UkrGuru.SqlJson.DbService _db;
public CreateModel(UkrGuru.SqlJson.DbService db)
{
_db = db;
}
Index页
在Index页面上更新您的OnGetAsync:
public async Task OnGetAsync()
{
Contact = await _db.FromProcAsync("Contacts_List");
}
创建页面
在创建页面上更新您的OnPostAsync:
public async Task OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
await _db.ExecProcAsync("Contacts_Ins", Contact);
return RedirectToPage("./Index");
}
编辑页面
在“编辑”页面上更新您的OnGetAsync和OnPostAsync:
public async Task OnGetAsync(int? id)
{
if (id == null)
{
return NotFound();
}
Contact = await _db.FromProcAsync("Contacts_Item", new { Id = id });
if (Contact.Id == 0)
{
return NotFound();
}
return Page();
}
public async Task OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
await _db.ExecProcAsync("Contacts_Upd", Contact);
return RedirectToPage("./Index");
}
详细信息页面
在“详细信息”页面上更新您的OnGetAsync信息:
public async Task OnGetAsync(int? id)
{
if (id == null)
{
return NotFound();
}
Contact = await _db.FromProcAsync("Contacts_Item", new { Id = id });
if (Contact.Id == 0)
{
return NotFound();
}
return Page();
}
删除页面
在“删除”页面上更新您的OnGetAsync和OnPostAsync:
public async Task OnGetAsync(int? id)
{
if (id == null)
{
return NotFound();
}
Contact = await _db.FromProcAsync("Contacts_Item", new { Id = id });
if (Contact.Id == 0)
{
return NotFound();
}
return Page();
}
public async Task OnPostAsync(int? id)
{
if (id == null)
{
return NotFound();
}
await _db.FromProcAsync("Contacts_Del", new { Id = id });
return RedirectToPage("./Index");
}
瞧,您的代码已经可以运行了。
https://www.codeproject.com/Tips/5295844/UkrGuru-SqlJson-is-Perfect-for-your-ASP-NET-Core-W