none
Entity Framework, Oracle и Primary Key RRS feed

  • Вопрос

  • Здравствуйте!

    Имеется бд в Оракле и программа на asp.net mvc связь с бд через EF

    При добавлении записи в таблицу через программу значению ключа выставляется 0, если добавлять через pl/sql то ключ генерируется нормально.

    Как правильно генерировать ключ через программу? с# (поле currentScenario.ID)

    Метод добавления записи

    SCENARIOS currentScenario = new SCENARIOS(); currentScenario.NAME = name; currentScenario.DATA = data;

    database.AddToSCENARIOS(currentScenario); database.SaveChanges();





    • Изменено Dmitriy Ler 30 мая 2013 г. 10:50

Ответы

  • Это свойство есть в дизайнере модели вашей БД.

    • Помечено в качестве ответа Dmitriy Ler 10 июня 2013 г. 5:48
  • В какой-то из версий VS был(есть) баг - не проставляется StoreGeneratedPattern для SSDL. Можете открыть ваш *.edmx как XML, и попробовать добавить это свойство вручную для свойства ID. В XML должно быть что-то типа этого:

    <!-- SSDL content -->
    <edmx:StorageModels>
    ...
    ...
    <EntityType Name="SCENARIOS">
    <Key>
    <PropertyRef Name="ID" />
    </Key>
    <Property Name="ID" Type="..." Nullable="false"  StoreGeneratedPattern="Identity" />

    Выделенное полужирным шрифтом нужно добавить вручную.

    Здесь описывается эта же проблема. В качестве решения предлагается установить StoreGeneratedPatternFix


    • Изменено Varlamov Oleg 31 мая 2013 г. 10:13
    • Помечено в качестве ответа Dmitriy Ler 3 июня 2013 г. 3:03

Все ответы