如何使用实体框架 C# 定义默认值
本文关键字:定义 默认值 框架 何使用 实体 | 更新日期: 2023-09-27 18:35:07
有问题的模型:
public class EmployeeType
{
public int employeeTypeId { get; set; }
public string typeName { get; set; }
public virtual List<Employee> Employees { get; set; }
}
public class Employee
{
public int employeeId { get; set; }
public string userName { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string password { get; set; }
public int employeeTypeId { get; set; }
public virtual EmployeeType EmployeeTypes { get; set; }
public virtual List<PhoneNumber> PhoneNumbers { get; set; }
}
目前,我通过以下方式添加不同的值:
db.EmployeeType.Add(new EmployeeType
{
typeName = "Administrator"
});
db.EmployeeType.Add(new EmployeeType
{
typeName = "Seller"
});
db.EmployeeType.Add(new EmployeeType
{
typeName = "Accountant"
});
但是,当我必须检查用户是否是管理员等的情况下,我必须检查linq查询并找出id是否等于Employee表中的id。
我如何在 EmployeeType 模型中定义默认记录,而不是通过多个 .添加行,以便我可以使用如下所示的内容:
if (db.Employee.FirstOrDefault(o => ...).servictypeId
== EmployeeType.Administrator)
{
}
处理此问题的最佳方法是将 employeetypeId 转换为 EF 中的枚举。您可以通过将字段"转换"为 EDMX 中的枚举来轻松实现此目的。只需右键单击 edmx 模型设计屏幕中的属性,然后单击"转换为枚举"。
首先,你需要创建一个枚举,称为用户角色:-
enum UserRole : int
{
Administrator = 1,
Manager = 2,
Client = 3
}
现在,当您想要创建新的用户角色时,您可以将它们添加到您的枚举中。
添加新用户时,您只需执行以下操作:-
new User object1 { Name = "Fred", UserRole = UserRole.Client};
dbContext.Save(object1);
EF 将知道在数据库中将 employeeTypeId 另存为 3。
优势变得更好,因为现在你可以说:-
if(User.UserRole == UserRole.Adminstartor)
{
//Do Stuff
}