2011-09-13 4 views
0

안녕을 필요한 관계 하나에 다음과 같이 내가 설정 될 수있는 데이터베이스가 :엔티티 프레임 워크 하나 둘

그것은에 속한 User이있는 Area : 그것은이있는 Area있다

public class User : IEntity 
    { 
     public int UserId { get; set; } 
     public string Username { get; set; } 
     public int AreaId { get; set; } 
     public string CreatedByUserName { get; set; } 
     public DateTime CreatedDateTime { get; set; } 
     public string LastModifiedByUserName { get; set; } 
     public DateTime? LastModifiedDateTime { get; set; } 

     //Navigation properties 
     public virtual Area Area { get; set; } 
    } 

유형 UserDefaultAdmin :

public class Area : IEntity 
     { 
      public virtual int Id { get; set; } 
      public virtual string Name { get; set; } 
      public virtual int DefaultAdminId { get; set; } 
      public string CreatedByUserName { get; set; } 
      public DateTime CreatedDateTime { get; set; } 
      public string LastModifiedByUserName { get; set; } 
      public DateTime? LastModifiedDateTime { get; set; } 
    } 


// Navigation properties 
     public virtual User DefaultAdmin { get; set; } 
    } 

는이 같은 것을 설정도 가능합니까? 둘 다 서로 필요하기 때문에 비어있는 테이블을 시작할 때 비어있는 테이블을 필요로하므로 비어있는 테이블을 만들 수 없습니다. 기본 테이블 스키마가 외부 키에 NOT NULL 제약이 가정

답변

1

는 관계의이 세트는 일

(심지어 사진에서 EntityFramework을 떠나는 경우) 당신은 수의 데이터베이스 측면에서 문제가 될 것입니다 하려면 다음 중 하나를 수행

가) 영역과 사용자

B 사이의 관계를 재검토) 또는 관계를 설명하면 정말 정확 :

    ,
  • 일시적으로 제 1 사용자가
  • 가 DefaultAdmin
  • 준 첫 번째 사용자와 마찬가지로 첫 번째 사용자와 제 1 영역을 만드는 제 1 사용자 (아마도 ADMINUSER)
  • 를 생성 영역없이 생성 될 수있는 요건을 완화 질문

데이터베이스를 배포 할 때 위의 데이터베이스 초기화 스크립트 실행의 일부로 수행 할 수있는 단계를에 설명 된대로 이전 단계

  • 에서 만든 영역은 관계 요구 사항을 복원. 첫 번째 영역과 사용자가 존재하면 설명 된 요구 사항을 위반하지 않고 추가 할 수 있습니다.

    • 사용자가 될 수있다 (많은 1) 많은 지역의 DefaultAdmin
    • 을 :

      나는 같은 질문의 제목에 설명 된대로 관계가 일대일 정말 아니라는 것을 지적해야 도움 (많은 1)

    • 면적이 많은 사용자를 가질 수

    희망 ...