Количество членов в концептуальном типе не совпадает
Сначала я использую код структуры сущностей с dotConnect для MySQL, и по какой-то причине я получаю сообщение об ошибке при сопоставлении одной из моих моделей.
Я искал эту ошибку, и она, как правило, вызвана неправильным файлом xml или файлами структуры объекта. Я не использую ничего из этого, только файл кода.cs с моделями.
Детали исключения:
System.Data.MappingException: число членов в концептуальном типе 'SiteModels.TournamentTable' не совпадает с количеством членов на стороне объекта типа 'SiteModels.TournamentTable'. Убедитесь, что количество членов одинаково.
Я понятия не имею, почему я получаю эту ошибку, так как у меня нет никакого дизайнера, только один файл, содержащий код.
Вот проблемный класс:
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 или переопределить их как методы.