是否可以引用另一个 table 以便将员工记录与用户记录相关联?

Is it possible to reference another table so that an employee record is associated with a user record?

我正在尝试构建一个网络应用程序,允许用户查看公司政策、程序、新闻通讯和他们自己的员工信息。

我的员工 table 包含所有员工信息(以及前缀、员工等级等相关查找 table)

我的应用程序使用 asp-identity 作为登录功能,但我希望能够 return 来自员工 table 的信息仅与该特定用户相关。

我知道可以扩展 ASP.net 用户 table 以包含自定义字段,但这并不真正适合我的目标,因为工作人员 table 用于管理团队基于桌面的应用程序。

为您的员工添加一个字段 table 例如 UserId ALTER TABLE Staff ADD UserId NVARCHAR(256) DEFAULT NULL;

您可以选择引用 AspnetUsers table。

更新员工 table 行以将 UserId 值设置为相关用户 ID(手动或创建一个操作来执行此操作)

然后,在您的控制器中,您可以 select 来自 table 的时事通讯,其中员工的用户 ID 等于已连接 User.Identity.Id。例如

var news = context.Newsletters.Where(n=>n.Staff.UserId==User.Identity.Id);
var infos = context.StaffInfos.Where(si=>si.Staff.UserId==User.Identity.Id);

如果 table 没有恋爱关系,您需要执行以下操作

var employee = context.Staffs.FirstOrDefault(s => s.UserId == User.Identity.Id);
if(employee != null) {
    var infos = context.StaffInfos.Where(si=>si.IdEmployee==employee.EmployeeId);
    return View(infos);
} else {
    return Content("You don't have an account associated to your staff info...");
}

请将这些查询中的字段替换为您的字段名称。