I am using Entity framework Code First CTP5 and I am trying to find a way to add a convention to change how foreign keys name are generated. Here is an example:
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;}
}
Lead can be associated to a user. The field generated in the DB for AssignedTo in the table Leads is called UserId.
My model is completely independent from entity framework. So I don't want to use attributes from EF. I would like to use the conventions if possible name the field AssignedToUserId for example.
I'm not sure if this would be possible with pluggable conventions but you can use fluent API to achieve it:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Lead>()
.HasRequired(l => l.AssignedTo)
.WithMany()
.IsIndependent()
.Map(c => c.MapKey(u => u.Id, "AssignedToUserId"));
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With