1
鑑於以下情況,實體框架代碼優先命名/重命名連接或聯接表。在EF Code-first中,三個實體可以共享相同的連接表嗎?
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 <APPUSER>)時,我得到了下面的錯誤。
「無效的對象名稱 'dbo.UserRoleLinks1'。」 「無效的對象 名稱'dbo.UserRoleLinks1'。」
看起來Code-first配置正在遞增Join表名,因爲它已經存在。
我該如何得到這個工作?有沒有更好的方法來獲取表格列的子集?