Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Matthieu MEZIL

I love .Net

Abonnements

Actualités

Locations of visitors to this page English blog
Locations of visitors to this blog
L'EntitySplitting : plus compliqué qu'il n'y parait

L'EntitySplitting permet de mapper une entité sur plusieurs tables (cf mon article sur EDM).

Cependant, il y a un cas très surprenant.

Imaginons une table Employees : Id (PK), LastName, FirstName et une table Consultants : Id (PK et FK vers Employees.Id).

Imaginons qu’on développe une application pour les consultants et uniquement pour eux, il serait intéressant de ne définir qu’une seule entité Consultant mappée à la fois sur la table Employees et sur la table Consultants.

Cependant, là, surprise !

Context.Consultants retourne tous les employés (y compris les non-consultants).

Et en regardant la requête SQL générée, la table Consultants est absente du SELECT.

Ceci est dû à une optimisation qui consiste à dire que vu qu’on a déjà récupéré l’Id via la table Employees, on peut s’épargner le INNER JOIN. Après en avoir discuté avec l’ADO .Net Team, cela est normal, c’est le comportement attendu (mais pas par moi).

J’ai alors tenté de mapper l’entité Consultant sur la table Consultants en premier puis sur la table Employees mais le résultat est le même.

Donc dans ce cas, il faudra utiliser de l'héritage (en l'occurence du TPT).

Maintenant, prenons le cas suivant : EntitySplitting sur deux tables avec seulement une colonne PK.

Dans ce cas, on récupèrera le résultat de la première table mappée.

En revanche, pas de soucis avec l’INSERT qui insère bien dans les deux tables.

J’ai fait une demande pour que cela change dans la V2 mais inutile de vous dire que cela n’évoluera pas avec le SP1 dont la sortie est imminente.

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 :

Publié mercredi 6 août 2008 19:36 par Matthieu MEZIL

Classé sous : , ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- EF et WPF par Matthieu MEZIL le il y a 3 heures et 25 minutes

- C# : Vérifications / Performances par Pierrick's Blog le il y a 7 heures et 1 minutes

- Du nouveau sur le clubvsts par Noham Choulant le il y a 8 heures et 40 minutes

- StyleCop SDK disponible par Michel Perfetti [Miiitch] le il y a 11 heures et 1 minutes

- Data Structures and Algorithms : un livre gratuit par Elise's blog le il y a 13 heures et 21 minutes

- [ASP.NET] - Ajax vNext Preview 2 par Aurelien's Blog - When ClientSide meets .Net le il y a 14 heures et 25 minutes

- TPH IS Not Null sur la relation par Matthieu MEZIL le il y a 16 heures et 45 minutes

- Mise à jours du code Source du .NET Framework 3.5 SP1 disponible sur le Reference Source Code Center par RedoBlog - The .NET Gentleman !!! le il y a 23 heures et 10 minutes

- ASP.net 3.5 SP1 : combiner les fichiers JavaScript grace au CompositeScript du ScriptManager (ex ScriptCombining du toolkitScriptManager) par Atteint de JavaScriptite Aiguë [Cyril Durand] le 08-28-2008, 22:39

- [Expression Web] Problème : Quand j'affiche l'Aide (F1), cela me met un message d'erreur. par Expression Web & Me le 08-28-2008, 19:44