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