1

(데이터베이스가 미리 정의되어 있으므로 EF에서 다시 만들 수 없습니다.)EF 4.2 코드 먼저 유창한 API로 매핑하는 방법은 무엇입니까?

이 내가 지금 (일을하지만 난 유창하게 API를 사용하여 재 작성 할)를 사용하여 매핑 :

이제
public class League 
{   
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid LeagueId { get; set; } 
    .... 
    #region References 

    public virtual ICollection<News> News { get; set; } 

    #endregion 
} 

public class News 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid NewsId { get; set; } 
    public Guid LeagueId { get; set; } 
    .... 
    #region References 

    [ForeignKey("LeagueId")] 
    public virtual League League { get; set; } 

    #endregion 
} 

, 어떻게 내가 유창하게 API를 사용하여이를 매핑 할 수 있습니다?

업데이트 작성했는데 작동하지만 더 간단한 버전이 있습니까? 2

modelBuilder.Entity<League>().HasMany(x => x.News).WithRequired(y => y.League).HasForeignKey(c => c.LeagueId); 

업데이트 나는 수업에서 누락 된 사람들을 추가했다. 하지만 문제는 내가 그걸두고두고 시도하면 실패한다는 것입니다. 어딘가에 키를 지정해야합니다. EF에서 데이터베이스를 만들도록 허용 할 수 없으며 테이블을 사용하여 작업하는 것을 거부합니다.

+1

더 간단한 버전은 아무 것도하지 않고 규칙을 사용하여 관계를 만드는 것입니다. Fluent API를 사용하면 업데이트가 답입니다. BTW : 귀하의 질문에 적절히 대답하기 위해 귀하의'.... '에 너무 많이 숨겨져 있습니다. 'League' 클래스의'News' 속성은 어디에 있고'News' 클래스의'LeagueId'는 어디에 있습니까? 지금은 업데이트로만 알 수 있습니다. – Slauma

+0

누락 된 정보로 업데이트되었습니다. 문제는 EF가 단지 테이블을 생성하지 않는다는 것입니다. 그것은 가질 수없는 전체 데이터베이스에 대한 액세스를 원합니다. – Patrick

+0

무엇이 문제입니까? 나는 업데이트 2 후에 잃어버린다. –

답변

1

당신은 예를 들어,이 문서에 표시되어야합니다

Database.SetInitializer<YourContext>(null); 

그리고 이것은 당신의 DB를 변경하거나 오류가 발생하는 것을 시도에서 EF을 방지해야합니다 http://www.codeproject.com/Articles/184133/Using-Entity-Framework-4-1-Code-First-with-an-exis 베이스 부분, 당신은 기본 DB를 초기화를 제거해야한다는 것입니다. 당신이주는 것을 가지고 노력할 것입니다.