Tengo un tipo de enumeración personalizado EmployementState (tipo complejo en el término EF 6, creo)
en OnModelCreating, el siguiente código lanza una excepción de tiempo de ejecución.
modelBuilder.Entity<Employee>().Property(e => e.EmployementState.Value).HasColumnType("int");
La excepción se muestra a continuación:
Message=The expression 'e => e.EmployementState.Value' is not a valid property expression. The expression should represent a property access: 't => t.MyProperty'.
¿No puedo averiguar cómo obtener la sintaxis correcta o hay algo más que me estaba perdiendo?
Gracias por tu ayuda.
Suponiendo que tenga el siguiente modelo para su objeto EmployementState
que tendrá los diferentes estados para su empleado:
public class EmployementState
{
public int Id { get; set; }
public string Name { get; set; }
}
A continuación, puede agregar una referencia como:
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; }
}
Recomiendo esto porque es el mejor enfoque cuando se trabaja con estados que describen sus objetos.
Por supuesto, al ser dos modelos separados, son configurables, por lo que las configuraciones como esta a continuación son fáciles de implementar.
modelBuilder.Entity<Employee>().Property(e => e.EmployementStateId)
.HasColumnName("employement_state_ID");