사용자, 도메인 및 역할의 세 엔티티가 있습니다.엔티티 프레임 워크 코드에서 외래 키 관계를 설정하는 방법은 무엇입니까?
나는 세 가지 엔티티의 관계를 정의하는이 클래스를 가지고 :
public class UserDomainRole
{
[Key]
public int UserId { get; set; }
[Key]
public int DomainId { get; set; }
[Key]
public int RoleId { get; set; }
}
그래서 어떻게 내가 설정 UserDomainRole과 다른 세 개의 테이블 사이의 외래 키 관계? 이게 뭔가요?
public class DeniedDomainRole
{
[Key]
public int UserId { get; set; }
public virtual User User { get; set; }
[Key]
public int DomainId { get; set; }
public virtual Domain Domain { get; set; }
[Key]
public int RoleId { get; set; }
public virtual Role Role { get; set; }
}
엔티티 프레임 워크는 관계를 작동합니까?
안녕하세요 Bassam, 이제 Add-Migration AddDeniedDomainRole 명령을 실행하고 올바른 마이그레이션 코드를 포함하는 C# 클래스가 만들어 졌음을 알게되었습니다. 그러나 코드를 실행하면이 오류가 발생합니다. 데이터베이스가 생성 된 후 'XXX'컨텍스트를 지원하는 모델이 변경되었습니다.코드 첫 번째 마이그레이션을 사용하여 데이터베이스를 업데이트하는 것이 좋습니다. 마이그레이션 코드가 생성되면 엔티티 프레임 워크가 테이블을 업데이트하기 위해 무엇을 할 수 있습니까? – daxu
당신은 첫 번째 update-database를 호출하거나 ssm –
과 같은 도구를 사용하여 db를 삭제해야합니다. 시도해 보겠습니다. 또한 마이 그 레이션 코드에서 마이 그 레이션 코드에 다음 행이 추가 된 이유를 알고 계십니까? RenameTable (name : "dbo.DomainRole", newName : "RoleDomain"); 나는 그것이 필요하지 않다고 생각했기 때문에 마이그레이션 파일에서이 줄을 주석 처리했습니다. 그러나 "잘못된 개체 이름 'dbo.RoleDomain'"쿼리를 시도 할 때 오류가 발생했습니다. 내 코드를 검색하려고했는데, 모든 것이 여전히 RoleDomain이 아닌 DomainRole을 사용하고 있습니까? – daxu