J'ai étudié les soi-disant «Micro ORM» comme Dapper et (dans une moindre mesure car il repose sur .NET 4.0) Massif car ceux-ci pourraient être plus faciles à mettre en œuvre au travail qu'un ORM à part entière depuis notre système actuel est fortement tributaire des procédures stockées et nécessiterait une refactorisation importante pour fonctionner avec un ORM comme NHibernate ou EF. Quel est l'avantage d'utiliser l'un d'eux sur un ORM complet? Il semble que juste une couche mince autour d' une connexion de base de données que les forces fixes que vous écriviez SQL brute - peut - être que je me trompe , mais m'a toujours dit la raison de ORM en premier lieu est si vous n'avez à écrire SQL, il pourrait être généré automatiquement; en particulier pour les jointures multi-tables et les relations de mappage entre les tables, ce qui est difficile à faire en SQL pur mais trivial avec un ORM.
Par exemple, en regardant un exemple de Dapper:
var connection = new SqlConnection(); // setup here...
var person = connection.Query<Person>("select * from people where PersonId = @personId", new { PersonId = 42 });
En quoi est-ce différent de l'utilisation d'une couche de données ADO.NET contrôlée manuellement, sauf que vous n'avez pas à écrire la commande, définir les paramètres et je suppose que mapper l'entité à l'aide d'un générateur. Il semble que vous puissiez même utiliser un appel de procédure stockée comme chaîne SQL.
Y a-t-il d'autres avantages tangibles qui me manquent ici où un Micro ORM a du sens à utiliser? Je ne vois pas vraiment comment il enregistre quoi que ce soit par rapport à la "vieille" façon d'utiliser ADO.NET, sauf peut-être quelques lignes de code - vous devez encore écrire pour comprendre quel SQL vous devez exécuter (ce qui peut devenir poilu) et vous devez toujours mapper les relations entre les tables (la partie avec laquelle les ORM à mon humble avis aident le plus).
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
, puis dog.First().Age
pour accéder aux propriétés.