【发布时间】:2019-10-14 20:36:22
【问题描述】:
我是全栈软件开发的新手,我有一个任务是在 .NET Core 中创建一个简单的全栈 Web 应用程序,Entity Framework Core(当涉及到后端部分时),它将存储一些员工数据。现在,假设我有一个 Employee 实体。我们还需要以某种方式实现员工的职位(员工可以担任后端开发人员、前端开发人员、项目经理等职位)。这就是为什么我还创建了这个 EmployeePosition 类,以便在 Employee 中有一个 EmployeePosition 属性。我还有其他类似的状态实体,例如应用程序中的 EmployeePosition。
EmployeePosition 然后将被播种到数据库中的一个单独的表中,因此它可以适用于“将使用”这个应用程序的任何公司(只需使用不同的种子数据)。我将使用旧数据库进行播种。
现在看来这可行,但对我来说似乎也有点过于粗糙,因为每当我需要对存储库中的状态进行操作时,我都会使用状态的魔法 ID 号, 或在方法中的某处硬编码 status Name 属性(如果我没有针对给定操作的更智能的解决方法),例如“Switch(Position.Name) case "front-end": do stuff" 等。
我能否就如何更好地实现这一点获得建议或指导,我在这方面进展顺利吗?
在 EmployeePosition 中实际使用枚举作为数据类型会更好吗?关于如何实现它的任何建议?考虑到我必须使用旧数据库进行播种,我将不得不以某种方式从旧文件中创建我的枚举。
public class Employee
{
[Key]
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string Image { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Phone { get; set; }
[Required]
public EmployeePosition Position { get; set; }
public class EmployeePosition
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
【问题讨论】:
标签: c# asp.net-core .net-core entity-framework-core