2013-01-06 1 views
5

엔티티 프레임 워크와 SQL 데이터베이스에 몇 가지 문제가 있습니다. 내 문제는 이것입니다 : 내 데이터베이스에 같은 속성을 가진 두 테이블이 있습니다, 그들은 유형과 길이가 동일하지만 그들은 어떤 식 으로든 관련이 없습니다. 아무 외래 키도. 내가 그런데 코드 첫 번째 방법을 사용하고엔티티 프레임 워크 4.1 동일한 속성 이름을 가진 두 개의 테이블

error 0019: Each property name in a type must be unique. Property name was already defined.

: 는 최대한 빨리 데이터베이스 엔티티 프레임 워크와 상호 작용을 시작으로 유명한 오류를 뱉어.

이 테이블의 클래스 표현 중 하나입니다

[Table("bo")] 
public class TbPBO 
{ 
    [Required(AllowEmptyStrings = false, ErrorMessage = "O campo de nome nao pode ser nulo")] 
    [MaxLength(55, ErrorMessage = "O campo de nome nao pode ter mais que 55 caracteres")] 
    [Column("nome", TypeName = "char", Order = 4)] 
    public string TbBonome { get; set; } 
} 

이 테이블의 다른 클래스 표현입니다 :

[Table("bi")] 
public class TbPBi 
{ 
    [Required(AllowEmptyStrings = false, ErrorMessage = "O campo nome nao pode ser nulo")] 
    [MaxLength(55, ErrorMessage = "O campo nome nao pode ter mais que 55 caracteres")] 
    [Column("nome", TypeName = "char", Order = 62)] 
    public string TbBinome { get; set; } 
} 

내가 이것을 사용하여 내 문맥을 수정하려했지만 행운도없이.

public class PHCDbContext:DbContext 
{ 
    public PHCDbContext(string connection):base(connection) 
    { 

     Database.SetInitializer<PHCDbContext>(null); 
    } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Entity<TbPBO>() 
      .Map(mbo => { mbo.Properties(tnome => new { tnome.TbBonome }); mbo.ToTable("bo"); }); 

     modelBuilder.Entity<TbPBi>() 
      .Map(mbo => { mbo.Properties(tnome => new { tnome.TbBinome }); mbo.ToTable("bi"); }); 

    } 
} 

이 문제를 해결하는 방법에 대한 의견이 있으십니까? 하나 더. 어떤 방식 으로든 데이터베이스를 변경하면 안됩니다. 나는 그것을 수정할 수 없다.

도움을 받으실 수 있습니다. 많은 인터넷 검색과 시행 착오 후 사전

+1

에 대한 감사는 클래스'TbPBO' (또는'TbPBi')이 속성은'nome'이라고 있습니까? 열 이름'nome'에 매핑 된 다른 속성과 충돌합니다. 또한 : 어떤 데이터베이스 시스템을 사용하고 있습니까? SQL Server 또는 MySql 또는 ...? – Slauma

+0

죄송합니다. 나는 SQL 서버 2008을 사용하고 있습니다. 두 클래스 모두 nome이라는 속성을 가지고 있습니다. 데이터베이스에있는 해당 테이블 bi 및 bo와 같습니다. 둘 다 nome라는 필드가 있습니다. 테이블 (b0)의 필드 (nome)에있는 데이터는 테이블 (bi)에서 동일하다. – jonniebigodes

+0

하지만 클래스에 이미 'nome' 속성이 있으면'TbBonome' 속성을'nome' 열에 매핑하는 이유는 무엇입니까? – Slauma

답변

0

에서 감사합니다. 나는 전동 공구를 발견하고 그것을 설치하고 내 데이터베이스를 리버스 엔지니어링하도록했다. 나는 프로세스를 실행하게했다. 그것은 테이블을 매핑했다. 클래스와 컨텍스트를 만들었습니다. 내가 뭘 테스트했는지 문제가 해결되었습니다. 도움