2013-09-26 3 views
0

Можно ли увеличивать число в запросе обновления с помощью Simple.Data?Приращение целого числа в запросе обновления Simple.Data

Моя база данных - это SQL Server, но я знаю, что Simple.Data предназначен для агностики базы данных, поэтому, возможно, этот запрос недоступен другим провайдерам.

SQL-запрос я пытаюсь создать будет выглядеть следующим образом:

UPDATE MyTable SET MyInt = MyInt + 1 WHERE Id = 123 

В настоящее время я должен сделать SELECT, и обновление в Simple.Data для достижения той же вещи:

var result = db.MyTable.Find(db.MyTable.Id == 123); 
result.MyInt++; 
db.MyTable.UpdateById(Id: result.Id, MyInt: result.MyInt); 

Мне интересно, есть ли способ реплицировать один оператор SQL выше.

ответ

1

Вы можете сделать это:

db.MyTable.UpdateById(Id: 123, MyInt: db.MyTable.MyInt + 1); 

Работы по SQL Server, должен работать во всех поставщиков на SQL основе.

+0

Thanks Mark. Должно ли это работать с InMemoryAdapter? Кажется, сброс значения MyInt равен 0. –

+1

Он не работает с InMemoryAdapter прямо сейчас. Эта функция предназначена для полной перезаписи в версии 2.0 и должна поддерживать почти все. –

0

Я нашел, что это не работает, если значение int равно null, а текущее значение равно null. Ничего не произошло. Но если я установил значение 0, это будет работать. Таким образом, мой int col теперь имеет значение 0.

Смежные вопросы