Reputation: 5428
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.
Upvotes: 9
Views: 1374
Reputation: 33216
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"));
}
Upvotes: 2