如何判断linq to sql对象是新的,修改的还是未更改的?

Jas*_*ebb 4 .net c# linq-to-sql

我有一个linq到sql类.我想检测它是否是新的(意味着插入将完成)或者是否有任何挂起的更改(将进行更新).我意识到我可以通过使用一个partial类并挂钩每个属性的on change事件来实现这一点.然而,对于一个不断变化的课程来说,这是一个很大的维护.

有没有更好的办法?

cas*_*One 7

你可以通过DataContext课程查看.

首先,检查ObjectTrackingEnabled属性DataContext.如果返回false,则上下文不会跟踪该对象.

然后,调用GetChangeSet方法DataContext.从那里,通过比较暴露的参考文献Deletes,Updates以及Inserts对你的对象属性.

如果在任何列表中找到引用,那么该列表将跟踪您的对象,您可以从那里继续.