Les vues aussi peuvent être générées directement dans le ssdl
Essentiellement pour une question de temps (1 heure c'est très court, surtout sur un sujet aussi vaste que l'EF), j'ai dû me limiter sur la présentation d'EDM lors de la session aux techdays que j'ai co-animée avec Michel.
Je vais donc profiter de mon blog pour apporter un complément d’information.
J’ai évoqué la possibilité, dans le ssdl, de créer soi-même ses fonctions en renseignant directement le code SQL, et donc sans passer par une procédure stockée, en utilisant la balise CommandText.
De la même manière, il est possible de définir dans le ssdl une vue non présente dans la database avec la balise DefiningQuery :
<EntitySet Name="MyCustomView" EntityType="TestModel.Store.MyCustomView">
<DefiningQuery>
SELECT …
</DefiningQuery>
</EntitySet>
Maintenant, j’aimerais revenir sur une remarque qui m’a été faite : « Si on écrit le SQL directement dans le modèle alors le modèle n’est plus indépendant de la base ».
Cette remarque est fausse. En effet, il y a trois parties distinctes : la description de la base (ssdl), la description des entités (csdl), le mapping (msl). Bien entendu la description de la base n’est pas indépendante de la base de données. Ce qu’il l’est en revanche, c’est la description des données. Et c’est ça qui est très intéressant car tout le code écrit par le développeur doit reposer sur celles-ci. Par conséquent, le fait d’écrire du SQL dans la description de la base n’est pas une violation de l’indépendance vis-à-vis de la base de données.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :