“已尝试附加或添加不是新的实体,可能是从另一个 DataContext 加载的。不支持此操作。”
我有很多处理 Attach() 方法的解决方案,但我只是想添加一条新记录。不知道发生了什么事。
这是我的代码,它在星号行上失败了。:
try
{
LINQDataContext datacontext = new LINQDataContext();
TrackableItem ti = datacontext.TrackableItems.FirstOrDefault(_t => _t.pkId == obj.fkTrackableItemId);
arcTrackableItem ati = new arcTrackableItem();
ati.barcode = ti.barcode;
ati.dashNumber = ti.dashNumber;
ati.dateDown = ti.dateDown;
ati.dateUp = ti.dateUp;
ati.fkItemStatusId = ti.fkItemStatusId;
ati.fkItemTypeId = ti.fkItemTypeId;
ati.partNumber = ti.partNumber;
ati.serialNumber = ti.serialNumber;
ati.archiveDate = DateTime.Now;
datacontext.arcTrackableItems.InsertOnSubmit(ati);
datacontext.SubmitChanges();
arcPWR aItem = new arcPWR();
aItem.comments = obj.comments;
aItem.fkTrackableItemId = ati.pkId;
aItem.fkPWRStatusId = obj.fkPWRStatusId;
aItem.PwrStatus = obj.PwrStatus;
**datacontext.arcPWRs.InsertOnSubmit(aItem);**
datacontext.SubmitChanges();
最佳答案
看起来 obj
是使用不同的 dataContext 构建的,并且需要使用相同的 dataContext 创建而不是实例化一个新的 dataContext。
一种快速解决方案可能是传入 dataContext,而不是在此方法中实例化新的 dataContext。
关于c# - LINQ TO SQL错误: An attempt has been made to Attach or Add an entity that is not new,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1840966/