[英]Using linq to select possible values for multiple database columns in one sql query (EF6)
[英]Querying using linq in EF6 is giving old values while database is having updated value
在EF6中使用Linq进行查询会在数据库具有更新值时给出旧值在下面的第一次运行代码中,它可以正常工作,但是在表tblReferenceNumber
获取新行之后,查询仅返回旧值,而我希望它可以检索包括新记录。
AuthDBEntities db = New AuthDBEntities()
tblReferenceNumber LRefNum = db.tblReferenceNumber.OrderByDescending(ab => ab.ID).First();
string lrNum = LRefNum.ReferenceNumber;
为什么我得到旧的价值观? 我该如何解决?
DbContext
每个实例都有一个缓存。 如果您使用的db
实例与上次获得该记录的实例相同,则最终将获得缓存的数据。
您可以使用:
db.Entry(LRefNum).Reload();
强制它获取新数据。
有关缓存的更多信息,请参见: http : //codethug.com/2016/02/19/Entity-Framework-Cache-Busting/
但是,这也引发了一个问题,为什么用相同的db
实例两次获得相同的记录。 您是否将db
声明为静态?
当您使用.First()时,您会实现此查询并将数据加载到内存中。 因此,当您尝试从LRefNum获取值时,您引用的是内存中的数据而不是数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.