嗨,我有一种通过调用重置数据对象的方法DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, Entity);。
捕获的是,传递给该方法的某些对象是来自数据上下文且已更改的对象,而其他一些则是新对象。新对象尚未附加到数据上下文,并且将被丢弃。
在DataContext.Refresh未附加对象上调用when时,System.ArgumentException由于DataContext对其不熟悉,因此我得到了。
有没有一种方法可以获取单个对象的跟踪状态(如此处定义:http : //msdn.microsoft.com/en-us/library/bb386982.aspx),因此我可以弄清楚它是否是修改后的对象或新对象?
问候
您可以这样做:
var changes = DbContext.GetChangeSet();
if(changes.Updates.Contains(EntityToCheck))
//Changed state
else if(changes.Inserts.Contains(EntityToCheck))
//New state
else if(changes.Deletes.Contains(EntityToCheck))
//Delete state
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2025 次 |
| 最近记录: |