많은 충돌하는 다중도 많은 많은으로 한 6 유창함 API 저는 두 엔티티가 : 사용자를 및 시설.EF 내가 엔티티 프레임 워크</p> <p>내 새로움에 아마, 이러한 특정 문제에 대한 답을 찾을 수 없어
시설 테이블에는 소유자 (사용자)가 필요하지만 시설에는 시설에 많은 "시설 사용자"가 할당 될 수도 있습니다. 여기
public class User
{
....
public virtual ICollection<Facility> Facilities { get; set; }
}
public Facility Facility
{
public Guid OwnerId { get; set; }
...
public virtual User Owner { get; set; }
public virtual ICollection<User> FacilityUsers { get; set; }
}
내 모델 빌더입니다
////Many To Many: Users To Facilities
modelBuilder.Entity<User>()
.HasMany(i => i.Facilities)
.WithMany(u => u.FacilityUsers)
.Map(m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("FacilityId");
m.ToTable("UserFacility");
});
//One to Many: Facility To Owner
modelBuilder.Entity<Facility>()
.HasRequired<User>(s => s.Owner)
.WithMany(s => s.Facilities)
.HasForeignKey(k => k.OwnerId);
문제는 그 소유자에지도 시설이있을 때, 나는 다음과 같은 오류가 있습니다 : 탐색 속성 'FacilityUsers가' '유형에 선언을 MEH.Web.Models.Entities.Facility '는 상충되는 다중도으로 구성되었습니다.
그러나 시설을 소유자 매핑에서 제외하면 작동합니다.
//One to Many: Facility To Owner
//modelBuilder.Entity<Facility>()
// .HasRequired<User>(s => s.Owner)
// .WithMany(s => s.Facilities)
// .HasForeignKey(k => k.OwnerId);
문제가되면, 시설 표는 null입니다 Owner_UserId 필드가 있지만 OwnerId가 제대로 채워집니다. I가 해결 될 때까지 나의 OCD 날에 이동하지 않습니다 "Owner_UserId"문제.
당신은 이 관계 하나 컬렉션을 탐색 속성 (Facilities
)를 매핑 할 수 없습니다 D
대단히 감사합니다! ** WillCascadeOnDelete (false) **를 추가해야했습니다. –