Re[25]: Проблемы организации OR-мапинга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.04.09 15:42
Оценка:
Здравствуйте, IT, Вы писали:

IT>Кроме семантического несоответствия больше никаких проблем.


На такую непосредственность и возразить-то сложно.
По-моему, семантическое несоответствие — это самое плохое, что можно было бы придумать. Приговор, я бы сказал.

IT>Для твоего примера как-то так:


IT>
IT>(from o in orders where o.OrderDate < xxx select o).Update(new order { delayed = true });
IT>


Ужас.

Потом, что такое "Update(new order { delayed = true })"? Из этого даже дерево выражений не получишь, так как оно строится только для лямбды. Тебе придется писать что-то вроде:

(from o in orders where o.OrderDate < xxx select o).Update(() => new order { delayed = true });

Что выглядит еще более странно.

Если учесть, что иногда нужно использовать информацию из полей изменяемого объекта, то придется передавать его через параметр:

(from o in orders where o.OrderDate < xxx select o).Update(o => new order { delayed = !o.delayed });


У пользователей будет ощущение, что информация о других значений из той же таблицы теряется.
Нехорошо, как-то.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.