2009-10-20 3 views
0

J'ai une base de données tierce dans laquelle la clé primaire est un type de données char. Lorsque j'exécute ma requête, j'utilise un include pour inclure la table enfant. Le compte est nul cependant. Je regarde sql profiler et les résultats sont retournés. La seule chose que je peux voir est un problème avec les colonnes de relation étant char. Une solution pour cela?Type de données Char dans le problème d'infrastructure d'entité relationnelle

+0

Pourriez-vous montrer le modèle d'entité et la requête. Les clés de char ne devraient pas être un problème par elles-mêmes. –

+0

J'ai une table, Licence. La clé primaire est License_Number qui est un char (30). La table enfant est License_Item qui a une relation établie avec son champ License_Number. La licence d'entité possède une propriété de navigation appelée LicenseItems dans une relation un à plusieurs. de l dans context.License.Include ("LicenseItems") où l.License_Number == "1234" select l; Renvoie une licence, les éléments de licence sont chargés, mais le nombre est zéro. – Marsharks

Répondre

0

Soyez prudent avec le type Char. "1234            "! = "1234"! La base de données ne peut pas remarquer cela, mais l'EF le fait.

+0

Les enregistrements retournés à partir de la base de données correspondent à ce qui se trouve dans la base de données, n'est-ce pas? Même si la requête peut demander 1234, les résultats renvoyés par la requête sont "1234" pour le parent et "1234" pour l'enfant, n'est-ce pas? – Marsharks

+0

Selon votre DB, je suppose. SQL Standard dit inclure les espaces. (Par opposition à VARCHAR, qui ne les requiert pas.) –

+0

Donc, mes relations ne fonctionnent toujours pas avec char. – Marsharks

0

J'ai trouvé une solution. Si j'utilise dans ma requête pour sélectionner de l'enfant et inclure le parent, obtenir le premier enfant dans la liste, puis obtenir une référence au parent, je suis capable d'obtenir le parent avec tout l'enfant.

  var query = from l in Context.LicenseItems 
         .Include("License") 
+0

Char est un hareng rouge, alors. Voici le véritable problème que vous traitez: http://blogs.msdn.com/alexj/archive/2009/06/02/tip-22-how-to-make-include-really-include.aspx –

Questions connexes