Мне нравятся инструменты ORM, но я часто думал, что для больших обновлений (тысячи строк) кажется неэффективным загружать, обновлять и сохранять, когда что-то типа
UPDATE [table] set [column] = [value] WHERE [predicate]
даст гораздо лучшую производительность.
Однако, если предположить, что кто-то хочет пойти по этому пути из соображений производительности, как бы вы тогда убедились, что все объекты, кэшированные в памяти, были обновлены правильно.
Допустим, вы используете LINQ to SQL и работали над DataContext. Как убедиться, что ваше высокопроизводительное UPDATE отражено в графе объектов DataContext?
Это может быть «не надо» или «использовать триггеры в БД для вызова кода .NET, который сбрасывает кэш» и т. Д., И т. Д., Но мне интересно услышать общие решения для такого рода проблем.