我有一个自定义枚举类型EmployementState(我认为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'.
无法弄清楚如何正确使用语法,还是我还缺少其他东西?
感谢您的帮助。
答案 0 :(得分:1)
假设您的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");