У меня есть следующая таблица:
Имя
ID number(8) not null,
Field1 varchar2(50) not null,
Field2 varchar2(50) not null,
Field3 varchar2(50) not null
В этой таблице у меня есть следующие строки:
ID,Field1,Field2,Field3
12,'text1','text2','text3'
Теперь я хочу обновить только поле2 (с запросом ajax):
HTTP PUT http://host/DataService/SomeName(12M)
Accept: application/json, text/javascript, */*
Content-Type: application/json; charset=utf-8
{ Field2: 'updated field 2' }
Я ожидал, что это будет означать:
update sometable
set field2 = 'updated field 2'
where id = '12'
но это не так. Вместо этого я получаю сообщение об ошибке, в котором говорится, что поля field1 и field3 не могут быть нулевыми. Есть ли простой способ обойти это, чтобы обновлялись только столбцы, указанные в запросе? Должен ли я сначала выбрать затронутую строку, чтобы заполнить отсутствующие значения (чего я не хочу по соображениям производительности)? Я также не хочу хранить незатронутые столбцы в скрытых полях на стороне клиента, просто чтобы обновление заработало. Я использую EFOracleProvider с EF4.
Любые идеи?