ASP.Net核心将字段从默认id更改为自定义id



我正在使用EF核心的数据库优先方法构建一个asp.net核心应用程序。我有一个Users表,其中包含几个字段,仅用于此示例。主键在UserId字段上,在我的UsersModel中,我已将[key]属性设置为UserId。

Id=int

UserId=唯一标识符

用户名=nchar

控制器

public async Task<IActionResult> UserDetails(int? id)
{
if (id == null || _context.UsersView == null)
{
return NotFound();
}
var usersModel = await _context.UsersView
.FirstOrDefaultAsync(m => m.Id == id);
if (usersModel == null)
{
return NotFound();
}
return View(usersModel);
}

HTML

<a asp-action="EditUser" class="bi bi-pencil" style="font-size:larger;" data-toggle="Tooltip" data-placement="top" title="Edit" asp-route-id="@item.Id"></a>

这一切都很好,但我不想使用Id列。我已经更改了我的控制器方法以接受userId,并更改了html以发布模型。UserId,但我的控制器中的参数始终为空。我对Ef核心和主键等做了一些研究,似乎Ef核心默认会使用Id字段。有什么办法改变这一点吗?因为引用UserId将是更好的实践。

非常感谢AJ-

我发现,我进入了主键和数据库索引的兔子洞,找错了地方。我所要做的就是更改html标记以发送正确的id。

asp路由CustomerId="@项目CustomerId";

我想是学习曲线的一部分

最新更新