0
我想寫一個EF命令,如果它在SaveChanges()上得到一個異常,它將修復它的一個字段。請參考下面的代碼示例:在對象上下文中修改一個EF實體
model.IMAGES.AddObject(new IMAGES
{
IMAGE = imageByteArray,
IMAGE_NAME = pNum + "_OTHER.JPG",
VIEWPOINT_ID = 279,
ID_NO = ++id,
});
try
{
model.SaveChanges();
Trace.WriteLine("Saved: " + pNum + "_OTHER.JPG");
}
catch
{
model.REF_PART_IMAGES.Last().VIEWPOINT_ID = 272;
model.SaveChanges();
Trace.WriteLine("Saved: " + pNum + "_OTHER.JPG");
}
呼叫到最後一個()拋出「LINQ實體無法識別方法‘PullPics.IMAGES LastIMAGES’方法,和這種方法不能被翻譯成表達店「
有沒有人有關於如何訪問新創建的對象來修改它的想法?
爲什麼不檢查上次()調用VIEWPOINT_ID的SaveChanges之前()?一般來說,基於try/catch的條件不好:http://programmers.stackexchange.com/questions/107723/arguments-for-or-against-using-try-catch-as-logical-operators – 2013-05-06 19:38:13
但是,如果你的在SaveChanges()之前移動它之後錯誤仍然存在我們需要查看模型的所有相關部分。 – 2013-05-06 19:39:36
您在引發異常的Last()方法中有一些查詢。您不能在查詢表達式中使用自定義方法。如果結果集不是很大,請在將項目存儲到內存之前(例如toArray)。 – maxlego 2013-05-06 19:45:56