DataContext 的SubmitChanges()方法是如何实现的?

XieeEvil 2011-03-13 12:59:35
询问SubmitChanges()方法是如何计算要插入、更新或删除的已修改对象的集?

因为我想实现对一张表进行增删改的功能,界面类似Excel表格一样,用户可以随便对表格中显示的记录进行增加一行记录,删除一条记录,或是更改原有记录中的字段的值,等所有操作都结束后,在点击提交按钮后,把更改提交到数据库。现在遇到的问题是:点击提交按钮后,如何获取哪些记录是被删除的,哪些记录是新增的,哪些记录是更新的。我想到一种办法,好像要嵌套一次循环,如果原始记录数目有200条,点提交后的记录数 有200条。那么就要执行200*200次判断。如果记录数再多一点,那么程序中判段次数就要更多,那么效率很更加低。所以才想知道微软Linq中DataContext类的SubmitChanges方法是如何实现的。求高人相助。
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2011-03-15
  • 打赏
  • 举报
回复
q107770540 2011-03-14
  • 打赏
  • 举报
回复
linq引入 DataContext 就是为了进行事务跟踪维护
客户端进行的一切insert,update,delete,select操作
在没有SubmitChanges前,都将由DataContext作为相应的事务进行维护

直到SubmitChanges后,DataContext连接数据库,发送SQL语句,将此类操作持久化到数据库内,
持久化失败则回滚事务

你所做的事情 LINQ已经帮你做好了
宝_爸 2011-03-14
  • 打赏
  • 举报
回复
你修改了Entity对象的值,EntityFramework会帮你记住哪些修改了,哪些没有修改。在SubmitChanges只提交那些修改过的数据。
XieeEvil 2011-03-14
  • 打赏
  • 举报
回复
楼上说的我都了解,我也知道Linq帮我实现了,但是我就想知怎样实现的,可惜.Net Framwork不是开源的。
namhyuk 2011-03-14
  • 打赏
  • 举报
回复
"哪些记录是被删除的,哪些记录是新增的,哪些记录是更新的"这些由DomainContext来帮你维护。在客户端domainContext.SubmitChanges()时只把修改过的(增/删/改)的数据通过网络发送到服务器端,以减小网络流量。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧