Невозможно изменить данные в i-Series DB2 из .NET

У меня есть приложение в .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 мы можем использовать явные транзакции).

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


person Rajini Kant    schedule 12.08.2011    source источник


Ответы (1)


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

person Mike Wills    schedule 12.08.2011
comment
Еще ищете? Я также привязан к iSeries и создаю толстые методы ado.net для простого выбора... - person e4rthdog; 01.10.2013
comment
Ага, еще в поиске. Вы можете купить один пакет, который выглядит так, как будто он может работать с EF, но я не видел 100% так или иначе. - person Mike Wills; 02.10.2013
comment
Я нашел свое решение. Я использую DAPPER micro-ORM. Проверьте это. Если вам нужен поставщик EF, вам нужно использовать DBConnect, который является платным программным продуктом IBM. - person e4rthdog; 02.10.2013