实体框架核心2.0 hascolumntype投掷运行时间异常



我有一个自定义枚举类型的雇员(我认为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");

最新更新