我想知道如何使用LINQ To SQL将一部分表拉入C#内存空间。假设我有一个包含数千个记录的数据库和一个一次显示一条记录的GUI界面。
当用户点击GUI上的下一个/上一个记录按钮时,LINQ To SQL datacontext必须去获取下一条记录 - 这需要时间。
我想要做的是获取一小段记录,说最后n条记录并将它们存储在内存中,以便下一个和上一个按钮反应更快。
我尝试过创建一个名为Table <vw_RawData>
的{{1}}类型的新字段,其中vw_RawData是我数据库中的一个表,由Visual Studio在构建datacontext时创建。然后我尝试使用
Table_RawData
)
onLoad
这是编译好的,但在运行时我得到以下错误......帮助??
System.InvalidCastException:无法转换类型为'System.Data.Linq.DataQuery
this._Table_Rawdata = (Table<vw_RawData>) from c in this._Db.vw_RawDatas where c.Date > DateTime.Now.AddMonths(-1) select c;
1 [vw_RawData]'的对象。
答案 0 :(得分:2)
您可以使用Take和Skip方法轻松获取记录块:
yourTable.OrderBy(x => x.Date).Skip(5).Take(3)
这将从记录号6开始返回3条记录。