保存更改后返回实体键不起作用
本文关键字:不起作用 实体 返回 保存更改 | 更新日期: 2023-09-27 18:09:27
我有这段代码
IMG_UPLOAD_FILES tObjUploadedFile = new IMG_UPLOAD_FILES();
tObjUploadedFile.UPLOAD_FILE_NAME = "testname.png";
tObjUploadedFile.SETTINGS_FOLDER_ID = 2;
dbHandler.IMG_UPLOAD_FILES.AddObject(tObjUploadedFile);
dbHandler.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
decimal tmpID= tObjUploadedFile.UPLOAD_FILE_ID;
tmpID仍然为0,并且永远不会返回键。
我已经将StoreGeneratedPattern设置为必需字段上的Identity。
我正在使用最新的ODB。
' T
我能找到的最接近的答案是:
因为Oracle使用序列+触发器使"自动识别"值,似乎当实体框架在保存它时添加对象时,返回的值仍然是0,因为触发器/序列还没有更新它。
所以解决这个问题的唯一方法是在保存后再次获取对象' T
对我来说,修复是手动(是的,手动!)进入edmx,在SSDL部分添加StoreGeneratedPattern="Identity"
属性,在CSDL部分添加annonation:StoreGeneratedPattern="Identity"
。
SQL端没有坏,但是Oracle端肯定坏了