我有一个linq到sql类。我想检测它是否是新的(意味着插入将完成)或者是否有任何挂起的更改(将进行更新)。我意识到我可以通过使用partial
类并挂钩每个属性的on change事件来实现这一点。然而,对于一个不断变化的课程来说,这是一个很大的维护。
有更好的方法吗?
答案 0 :(得分:7)
您可以查看DataContext
课程。
首先,检查DataContext
上的ObjectTrackingEnabled
property。如果它返回false,则上下文不会跟踪该对象。
然后,拨打DataContext
上的GetChangeSet
method。从那里,将Deletes
,Updates
和Inserts
属性公开的引用与您的对象进行比较。
如果在任何这些列表中找到了引用,那么该列表将跟踪您的对象,您可以从那里继续。
答案 1 :(得分:-1)
检查对象的id是否为0。
if someId = 0
Insert();
else
Update();
Simples