У меня есть два POCO, участвующих в отношениях многих ко многим.«A» имеет коллекцию «B», но для «B» нет необходимости иметь коллекцию «A».Когда я удаляю «B», записи в таблице Join не удаляются.Похоже, что Entity Framework code-first удаляет записи Join только при наличии свойства Navigation.Это правильно или есть другой способ?
Пример:
public class User() {
public int Id { get; set; }
public string Name { get; set; }
public List<Role> Roles { get; set; }
}
public class Role() {
public int Id { get; set; }
public string Name { get; set; }
}
//... Mapping Config ...//
this.HasMany(x => x.Roles)
.WithMany(/*can't be expressed without navigation property*/)
.Map(m => {
m.MapLeftKey("Users_Id");
m.MapRightKey("Roles_Id");
m.ToTable("UserRoleLinks");
});
//... Deleting a Role that is in use ...//
using(var ctx = new MyDbContext()) {
var role = ctx.Roles.Find(1);
ctx.Roles.Remove(role);
ctx.SaveChanges();
}
В этом случае записи UserRoleLinks будут потеряны при удалении роли.Мэйби, есть другой способ его настройки?