Возврат ключа сущности после сохранения не работает - PullRequest
1 голос
/ 22 сентября 2011

У меня есть этот кусок кода

            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.NET для базы данных ORACLE.

\ Т

Ответы [ 2 ]

0 голосов
/ 17 октября 2012

Для меня исправление состояло в том, чтобы вручную (да, вручную!) Перейти в edmx, добавить атрибут StoreGeneratedPattern="Identity" в части SSDL и И annonation:StoreGeneratedPattern="Identity" в части CSDL.

Это не таксломан на стороне SQL, однако он определенно сломан на стороне Oracle.

0 голосов
/ 23 сентября 2011

Самое близкое, что я могу найти, чтобы найти ответ:

Поскольку Oracle использует Sequence + Trigger для создания значений "Auto Ident", похоже, что когда структура сущностей добавляет объект при его сохранении,возвращаемое значение по-прежнему равно 0, потому что триггер / последовательность еще не обновили его.

Так что единственный способ обойти это - получить объект снова после его сохранения.

\ T

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...