Мне было интересно, как я могу извлечь часть таблицы, используя LINQ To SQL, в пространство памяти C #. Допустим, у меня есть база данных с тысячами записей и интерфейс GUI, который показывает одну запись за раз.
Когда пользователь нажимает кнопку следующей / предыдущей записи в графическом интерфейсе, тексту LINQ To SQL необходимо перейти и получить следующую запись - это занимает время.
Я хотел бы получить небольшой блок записей, скажем, последние n записей, и сохранить их в памяти, чтобы следующая и предыдущая кнопки реагировали намного быстрее.
Я попытался создать новое поле типа Table <vw_RawData>
с именем Table_RawData
, где vw_RawData - это таблица в моей базе данных, которая была создана Visual Studio при построении текста данных. Затем я попытался заполнить его (onLoad
), используя
this._Table_Rawdata = (Table<vw_RawData>)
from c
in this._Db.vw_RawDatas
where c.Date > DateTime.Now.AddMonths(-1)
select c;
Это компилируется нормально, но во время выполнения я получаю следующую ошибку ... help ??
System.InvalidCastException: невозможно преобразовать объект типа 'System.Data.Linq.DataQuery 1[vw_RawData]' to type 'System.Data.Linq.Table
1 [vw_RawData]'.