Невозможно изменить данные в i-Series DB2 из .NET - PullRequest
0 голосов
/ 12 августа 2011

У меня есть приложение в .NET, которое использует Entity Framework 4. Я использую DB2 / 400 в качестве бэкэнда приложения. Я могу делать запросы и успешно читать из базы данных. Однако при любой другой операции (например, вставка / обновление / удаление) я получаю ошибки. Я нашел ответ в http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14222306, в котором говорилось, что мой клиентский драйвер DB2 не был настроен для транзакций. Однако в папке / sqllib / cfg отсутствует файл db2cli.cfg (или где-либо еще на моем компьютере) Кроме того, я могу изменить таблицы из зеленого экрана / Java-приложения. Вот один из моих методов:

using (var context = new Data.SchemaEntity()) {
            string sql = "select * from schemaname.tablename where FLD='V2'";
            var rows = context.ExecuteStoreQuery<CUST>(sql, null);
            CUST c = rows.First(); // This is giving me the correct data

            if(c.EntityState == System.Data.EntityState.Detached)
                context.CUSTS.Attach(c);
            context.CUSTS.DeleteObject(c);

            context.SaveChanges();

        }

Мои вопросы:

  • Должен ли я перейти на другую версию / установку DB2 Express-C, которая устанавливает .NET драйвер / провайдер.
  • Могу ли я использовать любой другой подход для постоянство данных в рамках сущности (например, в jpa / hibernate мы можем использовать явные транзакции).

Если у вас есть какие-либо идеи (которые я могу попробовать, пожалуйста, укажите здесь)

1 Ответ

0 голосов
/ 12 августа 2011

Мне не очень повезло с использованием структуры сущностей с i.Обычно я только что использовал драйвер ADO.NET от IBM i Access.Извините, у меня нет лучшего ответа для вас.Я искал месяцами драйвер EF для i.

...