9

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.

4

1 回答 1

2

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"));
}
于 2011-02-25T01:14:28.560 回答