2013-02-15 2 views
0

튜토리얼의 코드를 사용하여 실제 프로젝트에서 필요한 것들을 시도하고 있습니다. 나는 내 DataBase에 테이블을 가지고있다. Foreign KeysDataBase을 사용하여 ADO.NET EF을 재 작성해야하는데, 이제는이 특별한 경우가별로 없다. 내가 그들을 필요로하지 않는 것이 보인다하나의 테이블에 ADO.NET Entity Framework 다중 FK

public class Blog 
    { 
     public int BlogId { get; set; } 
     public string Name { get; set; } 
     public string Url { get; set; } 

     public int UserId { get; set; } 
     public virtual User User { get; set; } 

     public virtual List<Post> Posts { get; set; } 
    } 

    public class Post 
    { 
     public int PostId { get; set; } 
     public string Title { get; set; } 
     public string Content { get; set; } 

     //public int BlogId { get; set; } 
     public virtual Blog Blog { get; set; } 

     //public int BlogId1 { get; set; } 
     public virtual Blog Blog1 { get; set; } 

     //public int BlogId2 { get; set; } 
     public virtual Blog Blog2 { get; set; } 

     //public int BlogId3 { get; set; } 
     public virtual Blog Blog3 { get; set; } 

     //public int BlogId4 { get; set; } 
     public virtual Blog Blog4 { get; set; } 
    } 

나는 int 속성 댓글을 달았습니다 : 여기 테스트 목적으로 사용하고 코드입니다. 나는 다음과 같은 얻을이 코드를 실행 :

enter image description here

그래서 순간에 나에 관한 두 가지가 있습니다를 - 두 개의 행이 빨간색으로 밑줄 - 이것은 하나 개의 테이블에 그렇다면 여러 Foreign Keys를 추가 할 수있는 방법입니다 - 내가 Blog_BlogIdBlog_BlogId1을 갖기 전에 왜 Blog1_.., Blog2_...이 나올까요?

답변

0

좋아, 여기서 해결책을 얻은 곳에서 게시물을 잃어 버렸지 만,이 특별한 경우에는 주석 처리 된 코드의 주석 처리를 제거하고 숫자 나 밑줄을 사용하지 않고 이름을 변경해야하는 일종의 명명 규칙 인 것처럼 보입니다. 그런 다음 OnModelCreating 이벤트에 내가 필요로이 코드를 여러 번 추가 : 나는 속성 이름과 클래스 인스턴스 내가 외래 키에 대한 새 레코드를 추가 할 때마다 이름을 변경

modelBuilder.Entity<Post>().HasRequired(c => c.Blog) 
            .WithMany(m => m.Posts) 
            .HasForeignKey(c => c.BlogId) 
            .WillCascadeOnDelete(); 

      modelBuilder.Entity<Post>().HasRequired(c => c.Blogged) 
              .WithMany() 
              .HasForeignKey(c => c.BloggedId) 
              .WillCascadeOnDelete(false); 

공지 사항.