Мы добавили новый столбец в таблицу базы данных. Столбец определяется следующим образом:
Name: DisplayAsSoldOut
Type: Boolean
NOT NULLABLE
Default Value: 0
Мы обновили нашу модель данных EDMX, и новый столбец выглядит просто отлично. Мы работаем на платформе ASP.NET 4.0 с использованием С#.
У нас есть класс, определенный как PagedList, который наследуется от List и реализует интерфейс IPagedList.
В PagedList у нас есть следующий метод:
protected void Initialize(IQueryable<T> source, int index, int pageSize, int? totalCount)
{
if (index < 0)
{ throw new ArgumentOutOfRangeException("PageIndex cannot be below 0."); }
if (pageSize < 1)
{ throw new ArgumentOutOfRangeException("PageSize cannot be less than 1."); }
if (source == null)
{ source = new List<T>().AsQueryable(); }
if (!totalCount.HasValue)
{ TotalItemCount = source.Count(); }
PageSize = pageSize;
PageIndex = index;
if (TotalItemCount > 0)
{ PageCount = (int)Math.Ceiling(TotalItemCount / (double)PageSize); }
else
{ PageCount = 0; }
HasPreviousPage = (PageIndex > 0);
HasNextPage = (PageIndex < (PageCount - 1));
IsFirstPage = (PageIndex <= 0);
IsLastPage = (PageIndex >= (PageCount - 1));
if (TotalItemCount > 0)
{ AddRange(source.Skip((index) * pageSize).Take(pageSize).ToList()); }
}
Когда мы доходим до следующей строки:
{ AddRange(source.Skip((index) * pageSize).Take(pageSize).ToList()); }
мы получаем следующее исключение...
Type: System.Data.EntityCommandExecutionException
Inner Exception: "Invalid column name 'DisplayAsSoldOut'."
Я пытался найти этот тип исключения, но безрезультатно. Столбец отлично отображается в наборе данных EDMX. Я даже создал небольшую одноразовую программу и импортировал EDMX для простого чтения из базы данных, и она работала нормально. Кто-нибудь сталкивался с чем-то подобным?
Прошу прощения за длинное сообщение, но хотел предоставить как можно больше информации.