我有一个自定义枚举类型的雇员(我认为EF 6项中的复杂类型)
在OnModelCreating中,以下代码抛出了运行时间异常。
modelBuilder.Entity<Employee>().Property(e => e.EmployementState.Value).HasColumnType("int");
例外显示:
Message=The expression 'e => e.EmployementState.Value' is not a valid property expression. The expression should represent a property access: 't => t.MyProperty'.
无法弄清楚如何正确获取语法,还是我缺少其他内容?
谢谢您的帮助。
假设您对EmployementState
对象有以下模型,该模型将为您的员工保留不同的状态:
public class EmployementState
{
public int Id { get; set; }
public string Name { get; set; }
}
您可以添加参考:
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
// All your user properties here
public int EmployementStateId { get; set; }
public virtual EmployementState EmployementState { get; set; }
}
我建议这样做,因为当您使用描述对象的状态时,是最好的方法。
当然是两个单独的模型,它们是可配置的,因此下面的配置易于实现。
modelBuilder.Entity<Employee>().Property(e => e.EmployementStateId)
.HasColumnName("employement_state_ID");