У меня есть приложение в .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 мы можем использовать явные транзакции).
Если у вас есть какие-либо идеи (которые я могу попробовать, пожалуйста, укажите здесь)