我有一個奇怪的問題,我不能從數據庫中獲取對象,然後重新附加它。我已經爲其他項目編寫了類似的代碼,但出於某種奇怪的原因,它會在此應用程序中引發以下錯誤:EntityKey屬性只能設置,LINQ2Entities
System.InvalidOperationException:僅當屬性的當前值爲null時才能設置EntityKey屬性。
這裏是我的代碼:
Entities.Customer customer;
using (var context = new XXEntities())
{
IQueryable<Entities.Customer> query = from a in context.Customers select a;
query = query.Where(c => c.CODE == "003046");
customer = query.ToList()[0];
}
using (var context = new XXEntities())
{
context.Customers.AddObject(customer);
context.SaveChanges();
}
可能是一個更好的選擇將離開附加的記錄。在其他地方執行所有業務邏輯,然後在完成所有要做的更改時,將包含更新數據的對象傳遞給查詢數據庫的方法,進行更改並保存更改,全部都在同樣的方法,以便記錄始終附加。按照自己的方式做,稍後會在某些時候導致問題。 – frenchie 2012-03-18 22:59:12
我應該給這個問題更多的上下文,對不起,我正在做的是以下內容:GET OBJECT-> PARSE OBJECT TO DTO - > PASS DTO通過WS - > MODIFY DTO - > PASS DTO通過WS - > REMAP返回DTO TO ENTITY - >保存實體。問題是我鬆了所有相關的LINQ2Entities的東西,知道對象是新的還是已被修改。 – Joshy 2012-03-18 23:24:39
它可能會以其他方式工作:使用Id = null附加一個新對象。不完全確定。 – 2012-03-18 23:28:42