나는 사용자 모델fluentApi를 사용하여 중첩 관계를 관리하는 방법은 무엇입니까?
public class User {
public Guid IdGuid {get;set;}
public string Name {get;set;}
public virtual List<User> Friends {get;set;}
}
을 그리고 난 내가 맥락에서 FluentApi 코드 OnModelcreating
이 두 번째 모델을
public class UserFriendship{
public Guid FriendShipIdGuid {get;set;}
public Guid UserIdGuid {get;set;}
public Guid FriendIdGuid {get;set;}
}
있습니다.
modelBuilder.Entity<User>().HasMany(u => u.Friends).WithMany().Map(c => {
c.MapLeftKey("UserIdGuid");
c.MapRightKey("FriendIdGuid");
c.ToTable("UserFriendship");
});
문제 : 이미 UserFriendship
클래스 모델이 있습니다. 그리고이 모델에 대한 사용자에 대한 관계를 만들고 싶습니다. 그리고 저는 FluentApi로 그것을하고 있습니다.
FluentApi 코드를 실행 한 후 FriendShipIdGuid
이 UserFriendship
표에서 제거되었습니다.
사용자를 위해 일대 다 관계를 만들어 테이블 UserFriendship
에 저장하고 dbset의 요소 인 UserFriendship
으로 기존 클래스 모델 이름을 매핑해야합니다. 제발 도와 주실 수 있습니까?
요약하면 이미 UserFriendship
클래스입니다. 이 클래스에는 FrientshipGuidId
(키), UserIdGuid
, FriendIdGuid
이 포함되어 있습니다. 지도를 만들려면 User
클래스 one to many to this. 그리고 나는이 관계를 UserFriendship
클래스에 저장하려고합니다. 그리고 Userfriendship
을 dbset으로 사용하고 싶습니다.
나는 나의 맥락에서
public DbSet<UserFriendship> Friendships { get;set; }
있습니다.
FluentApi ToTable
함수를 사용하여 일대 다 관계 테이블을 만듭니다. FluentApi 코드에서 FriendshipIdGuid
필드를 삭제하십시오.
코드 테이블을 기존 테이블과 함께 사용하려고합니까? – mostruash
@mostruash 예. 유창하게 만드는 기존 테이블. 하지만이 UserFriendship을 dbset으로 사용해야합니다. 이 우정 데이터를 User 클래스 속성으로 사용하겠습니다. 이 속성은 List 친구입니다. 그게 가능하니? UserFriendship 테이블에서 User.Friends 목록을 생성해야하며 UserFriendship을 DbSet으로 사용해야합니다. –
Ras