Учитывая следующую ситуацию, Entity Framework Code first-name пропускает / переименовывает таблицу соединений или соединения.
public class User () {
//all fields from Users table
//...
//Role collection from Roles table through UserRoleLinks table
public List<Role> Roles { get; set; }
}
public class AppUser() {
//subset of fields from Users through AppUsers View
//...
//Role collection from Roles table through UserRoleLinks table
public List<Role> Roles { get; set; }
}
И пользователь, и пользователь AppUser имеют следующую запись конфигурации:
this.HasMany(e => e.Roles)
.WithMany().Map(m => {
m.MapLeftKey(a => a.Id, "Users_Id");
m.MapRightKey(b => b.Id, "Roles_Id");
m.ToTable("UserRoleLinks");
});
Во время выполнения я получаю следующую ошибку при попытке использовать AppUsers (DbSet ).
"Неверное имя объекта 'dbo.UserRoleLinks1'.""Неверное имя объекта 'dbo.UserRoleLinks1'."
Похоже, что конфигурация с кодом вначале увеличивает имя таблицы объединения, потому что она уже существует.
Как я могу получить этоза работой?Есть ли лучший способ получить подмножество столбцов таблицы?