2011-09-22 92 views
1

我有这样一段代码实体键不起作用

  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到身份所要求的领域。

我正在使用针对ORACLE数据库的最新ODB.NET。

\ t

+1

打开EDMX XML和验证存储生成的图案在两个SSDL(表定义)和CSDL(实体定义)部件正确配置。 –

+0

'<的EntityType名称= “IMG_UPLOAD_FILES”> <属性类型= “小数” 名称= “UPLOAD_FILE_ID” 可空= “假” 精密= “38” 比例=” 0" 注释:StoreGeneratedPattern = “同一性”/> <属性类型= “字符串” 名称= “UPLOAD_FILE_NAME” 的MaxLength = “255” 定长= “假” 的Unicode = “真”/> <属性类型= “小数” 名称= “SETTINGS_FOLDER_ID” 精密= “38” 比例= “0”/> ' –

+0

看起来像其优良 –

回答

0

我可以来找到答案最接近的是:

由于Oracle使用序列+触发器,使“自动订货号”的价值观,似乎当实体框架增加了一个对象像在保存时,值返回值仍然为0,因为触发器/序列尚未更新它。

所以来这一轮唯一的办法就是你必须将它保存后,再次获得的对象。

\ t

0

对我来说,修复是手动(是的,手动!)进入EDMX,添加StoreGeneratedPattern="Identity"属性的SSDL部分,在CSDL部分annonation:StoreGeneratedPattern="Identity"

它不破SQL一边,但它肯定是打破对事物的Oracle方面。