Matthieu Mezil
Les bases d'Entity Data Model
Avec EDM, l'Entity Framework permet d'assurer l'indépendance entre les entités et le modèle de persistance et authorise un mapping très puissant
Par Matthieu Mezil publié le 24/03/2008 à 11:37, lu 8105 fois, 7 pages
 6 | Les vues
En base, les vues sont des éléments en lecture seule. Par conséquent, l'Entity Framework ne peut pas générer de requêtes INSERT / UPDATE / DELETE sur une vue. Pour les vues, dans le cas d'un CUD, il faudra donc forcément passer une fonction ssdl:

<Function Name="DeleteMember" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" 

          ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">

  <Parameter Name="CustomerID" Type="nchar" Mode="In" />

</Function>

Ou en définissant directement le code sql dans le ssdl.

<Function Name="DeleteMember" IsComposable="false">

  <CommandText>

    DELETE Members

    WHERE CustomerId = @CustomerId

 

    DELETE Customers

    WHERE CustomerId = @CustomerId

  </CommandText>

  <Parameter Name="CustomerID" Type="nchar" Mode="In" />

</Function>

Attention, une opération de type CUD sur une vue sans fonction ssdl ne génèrera une erreur qu'à l'exécution.
Comme pour les fonctions ssdl, les vues peuvent être directement définies dans le ssdl. Pour cela, il faut utiliser la balise DefiningQuery dans le ssdl:

<EntitySet Name="MyCustomView" EntityType="TestModel.Store.MyCustomView">

  <DefiningQuery>

    SELECT …

  </DefiningQuery>

</EntitySet>

 
» Démarrer une discussion
 
Discussion démarée par DadvDadv le 14/08/2008 à 00:38, 15 commentaire(s).
Discussion démarée par Frédéric Decréquy le 05/04/2008 à 12:00, 3 commentaire(s).
Discussion démarée par IDoCoX le 28/04/2009 à 12:22, 2 commentaire(s).
Discussion démarée par DadvDadv le 01/09/2008 à 22:57, 2 commentaire(s).
Discussion démarée par Aurelbeef le 04/03/2009 à 18:00, 2 commentaire(s).