gpt4 book ai didi

c# - Status Entities in .NET Core Entity Framework - 建议的实现

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:01 25 4
gpt4 key购买 nike

我是全栈软件开发的新手,我的任务是在 .NET Core、Entity Framework Core(涉及后端部分)中创建一个简单的全栈 Web 应用程序,这将存储一些员工数据。现在,假设我有一个 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; }
}

最佳答案

您可以为员工职位创建一个Enum

public enum EmployeePosition
{
Backend = 0,
Frontend = 1,
DBA = 2,
}

还有你的员工实体

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; }
}

然后就可以使用了

If (Employee.Position == EmployeePosition.Backend)
{
// your logic.
}

关于c# - Status Entities in .NET Core Entity Framework - 建议的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58383751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com