2014-05-20 3 views
0

웹 응용 프로그램 mvc 4의 기존 데이터베이스에 새 테이블을 추가하는 방법에 문제가 있습니다. 데이터베이스에 테이블을 추가 한 다음 모델을 추가했습니다. 솔루션을 빌드 할 때이 오류가 발생합니다. 'MvcFFL.Models'네임 스페이스에 이미 'PlayerDBContext'에 대한 정의가 포함되어 있습니다. C : \ Webs \ MvcFFL \ MvcFFL \ Models \ Player.cs 19mvc4의 기존 데이터베이스에 새 테이블 추가하기

다음은 내 Abbrviations 모델입니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 

namespace MvcFFL.Models 
{ 
    public class Abbrivations 
    { 

     public int ID { get; set; } 
     public string Abbrv { get; set; } 
     public string Team { get; set; } 
    } 

    public class PlayerDBContext : DbContext 
    { 
     public DbSet<Abbrivations> Abbrvs { get; set; } 
    } 
} 

Dbset 라인은 Player.cs 파일로 이동해야합니까, 아니면 실제로 필요합니까? 테이블을 사용하여 데이터를 추가 할 수 있습니다.

+0

혹시 PlayerDBContext라고도 불리는 또 다른 클래스가 있습니까? – SoftwareFactor

+0

네, 그 오류가 이해하지만 내가 DBset의 다른 부분을 참조 할 때 이해합니까? – user3240928

+0

왜 모든 DbSets를 단일 DbContext에 추가하지 않는 것이 좋을까요? 당신이 그들을 분리 한 이유가 있습니까? – SoftwareFactor

답변

1

내 EF 컨텍스트가 어떻게 설정되었는지 재구성 할 것입니다. 컨텍스트에 대한 언급없이 모델 클래스를 독자적으로 사용하십시오. 그런 다음 모델의 DbContext 및 DbSet에 컨텍스트 파일을 만듭니다.

저는 대개 절대적으로 말하지 않지만, 이것은 객관적으로 당신이 현재하고있는 방식보다 당신의 ef를 구조화하는 더 좋은 방법입니다.

public class PlayerDBContext : DbContext 
{ 
    public DbSet<Abbreviations> Abbrvs { get; set; } 
    public DbSet<Team> Teams{ get; set; } 
    //and any other context specific information OnModelCreating, SaveChanges, etc 
} 

응용 프로그램 컨텍스트는 응용 프로그램마다 한 번만 선언해야합니다. 그렇지 않으면 매우 혼란스럽고 작동하지 않을 가능성이 높습니다.

+0

오, 알았어. 지금은 고마워. – user3240928

관련 문제