日期:2014-05-17  浏览次数:20727 次

Linq to sql ,当数据库数据发生改变时,如何获得改变的数据
数据库有一张表有3000条记录,不定时会更新其中的一部分,几十条到几百条。

现在用linq to sql 直接映射成一个对象的集合。

有两个问题:
1. 如果原始数据改变的时候, 映射的集合中的数据是否马上改变?还是需要一个触发事件或者有一个延时的?
  个人理解应该是马上改变的,因为linq to sql背后是转成sql语言的一种延迟绑定技术。但不太确定。

2. 有没有机制可以让我获得最近一次被更新的记录(对象)的清单,或则索引号?

非常感谢

------解决方案--------------------
这个是 内存中的数据和 数据库同步的问题吧?
假如 通过 ADO.net从数据库中取数据..linq to sql 是对 ADO.NET 类进行操作的..不是直接对数据库进行操作的...这个只要保持 ADO,ENT 类 和 数据库 同步就得了
------解决方案--------------------
只要不修改表的结构,你任意的添加数据都是同步的。
------解决方案--------------------
1. 你误解了LINQ的延迟查询特性
2. 你在表中添加一列记录一下 lastupdatetime
然后查询的时候排一下序 取最新的数据即可: orderby lastupdatetime descending