2012-09-26 4 views
1

먼저 엔티티 프레임 워크 코드를 MySQL 용 dotConnect와 함께 사용하고 있으며 어떤 이유로 인해 모델 매핑 중 하나에 대한 오류가 발생합니다.개념 유형의 구성원 수가 일치하지 않습니다.

이 오류를 검색했으며 대개 나쁜 xml 파일 또는 엔터티 프레임 워크 특정 파일 때문에 발생합니다. 나는 이들 중 하나만 사용하고 있으며 모델과 함께 .cs 코드 파일 만 사용합니다.

예외 정보 :

System.Data.MappingException : 개념 유형 'SiteModels.TournamentTable'의 회원 수는 물체 측 유형 'SiteModels에 회원의 수와 일치하지 않습니다. 토너먼트 테이블 '. 을 회원 수가 동일하게 만드십시오.

디자이너가 없기 때문에이 오류가 발생하는 이유는 알 수 없습니다. 코드가 들어있는 파일이 하나뿐입니다.

public class TournamentTable 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int Id { get; set; } 

public List<TournamentColumn> Columns { get; set; } 

public TournamentTable() 
{ 
    Columns = new List<TournamentColumn>(); 
} 

public void AddColumn(int index, TournamentColumn column) 
{ 
    Columns.Insert(index, column); 
} 

public void RemoveColumn(int index) 
{ 
    Columns.RemoveAt(index); 
} 

/// <summary> 
/// Add a tournament cell at the top of the column. 
/// </summary> 
/// <param name="column"></param> 
public void AddColumn(TournamentColumn column) 
{ 
    Columns.Add(column); 
} 

/// <summary> 
/// Returns the tournament column at the index specified. 
/// </summary> 
/// <param name="index"></param> 
/// <returns></returns> 
public TournamentColumn this[int index] 
{ 
    get { return Columns[index]; } 
} 

/// <summary> 
/// Returns the tournament cell at the index specified. 
/// </summary> 
/// <param name="columnIndex"></param> 
/// <param name="cellIndex"></param> 
/// <returns></returns> 
public TournamentCell this[int columnIndex, int cellIndex] 
{ 
    get { return Columns[columnIndex][cellIndex]; } 
    set 
    { 

     Columns[columnIndex][cellIndex] = value; 
    } 
} 

}

컨텍스트 구성 : 도움을

public class EntitiesContext : DbContext 
{ 

    public EntitiesContext() 
     : base() 
    { 
     System.Data.Entity.Database.SetInitializer<EntitiesContext>(new DropCreateDatabaseIfModelChanges<EntitiesContext>()); 
    } 

public EntitiesContext(DbConnection connection) 
    : base(connection, true) 
{ 
} 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Conventions 
     .Remove<System.Data.Entity.ModelConfiguration.Conventions 
     .ColumnTypeCasingConvention>(); 
} 

public DbSet<User> Users { get; set; } 
public DbSet<Player> Players { get; set; } 
public DbSet<Game> Games { get; set; } 
public DbSet<TournamentTable> TournamentTables { get; set; } 

가}

덕분에, 내가 어떤이 없어 여기에

문제가있는 클래스입니다 실마리.

+1

인덱서를 주석 처리하고 도움이되는지 확인해보십시오. 그렇지 않으면 NotMapped 특성을 메서드에 넣거나 다시 구현해야 할 수 있습니다. – Pawel

+0

NotMapped 속성이 트릭을 수행했습니다. 고마워요! –

답변

1

인덱서를 주석 처리하고 도움이되는지 확인해보십시오. 그렇지 않으면 NotMapped 특성을 메서드에 넣거나 다시 구현해야 할 수 있습니다.