Суть задачи в следующем: требуется хранить в базе данных информацию о состоянии объекта (например, следим за задвижкой на насосной станции второго подъема). Параметров по наблюдаемому агрегату может быть много — это температуры, вибрации, значения токов, процент поворота. Кроме того, необходимо сохранять так называемые временные «слепки» (значения всех параметров) состояния агрегата с заданной частотой, например раз в минуту, или по событию (при открытии задвижки), чтобы потом иметь возможность анализа каких-либо нештатных ситуаций.
Хочется работать с данными как с объектами на самом высоком уровне, имея функции запроса и записи их состояния без углубленного погружения в SQL. Подумал об использовании ORM, так как по моему мнению они именно для этого и предназначены. В общем, посоветуйте какую-нибудь стоящую систему.
Пользуемся очень легким ORM "Dolphin". Причины в следующем. Entity Framework требует большого объема ручной работы. Например, при изменении таблицы в базе - руками придется править классы. А попробуйте удалить какое-то поле... Кроме того не позволяет ограничивать выборку только нужными полями. Эффективность работы значительно падает. Dolpin - позволяет производить настраиваемые эффективные выборки из базы MSSQL. Кроме того dolphin просто обертка над ado.net этим и объясняется высокая скорость работы.
NHibernate.
Т. к. пользовался только им, другой посоветовать не могу… Еще можно попробовать EntityFramework, но мне в нем, после использования NHibernate, не понравилась конфигурация отображения объектов на базу.