我正在使用实体框架 4.0。我对数据库做了很多读取操作(数据分析)。不会保存任何数据。目前,尽管有延迟加载,但对数据库服务器的 I/O 操作数量会大大降低应用程序的速度。我决定将大部分小表加载到内存中(.ToList()
),然后生成计算。有没有办法自动读取表中数据的上下文只是对它的第一次引用并且没有被生命上下文更新?这个想法是,进一步引用这个表并没有查询数据库,只有应用程序的内存。
现在,我使用以下代码:
public class cDBReader
{
private List<RISK_T_MEMBERS> fMembers;
public List<RISK_T_MEMBERS> Members
{
get
{
if (fMembers == null)
using (RiskEntities context = new RiskEntities(TConfiguration.connectionString))
{
context.RISK_T_MEMBERS.MergeOption = System.Data.Objects.MergeOption.NoTracking;
fMembers = context.RISK_T_MEMBERS.ToList();
}
return fMembers;
}
set { fMembers = value; }
}
}