2011-02-24 9 views
9

Estoy utilizando Entity framework Code First CTP5 y estoy tratando de encontrar una manera de agregar una convención para cambiar cómo se generan los nombres de claves externas. Este es un ejemplo:¿Cómo podemos cambiar la convención de nomenclatura de claves foráneas en DB en EF Code First CTP5?

public class Lead 
{ 
    public int Id {get; set;} 
    // A lot of other fields 
    public virtual User AssignedTo { get; set; } 
} 

public class User 
{ 
    public int Id {get; set;} 
} 

plomo puede estar asociada a un usuario. El campo generado en la base de datos para AssignedTo en la tabla Leads se llama UserId.

Mi modelo es completamente independiente del marco de la entidad. Entonces no quiero usar atributos de EF. Me gustaría utilizar las convenciones si es posible nombrar el campo AssignedToUserId por ejemplo.

Respuesta

2

no estoy seguro de si esto sería posible con las convenciones enchufables pero se puede utilizar API fluida para lograrlo:

protected override void OnModelCreating(ModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Lead>() 
       .HasRequired(l => l.AssignedTo) 
       .WithMany() 
       .IsIndependent() 
       .Map(c => c.MapKey(u => u.Id, "AssignedToUserId")); 
} 
+4

Sí esto es lo que estoy haciendo en este momento. Pero no quiero tener que hacer eso cada vez que agrego una nueva relación :). – EtienneT

Cuestiones relacionadas