Je travaille avec un peu d'une base de données existante, mais voici l'idée de base:Linq 2 SQL, ne peut pas créer une association
Item
Id INT PK NOT NULL
Description VARCHAR(50) NOT NULL
TranslationId INT NULLABLE
Translation
Id INT PK NOT NULL
Language VARCHAR(10) PK NOT NULL
Translation VARCHAR(50) NOT NULL
En principe, chaque article peut avoir plusieurs traductions, semble assez simple. Ces tables n'ont pas de clés étrangères, donc j'essaie manuellement de créer l'association dans DBML, mais elle échoue en raison de la différence NULL entre translationID et PK dans la table Translation.
Y at-il de toute façon je peux obtenir cette association à travailler, par exemple:
item.Translations
Message d'erreur: Impossible de créer une association "Item_Translation". Les propriétés n'ont pas de type correspondant: "TranslationId", "Id".
Je sais que cela a à voir avec TranslationId étant nullable parce qu'une autre table avec une association à Translations fonctionne correctement, mais sa colonne TranslationId n'est pas NULL.
données Exemples de traduction:
Id Language Translation
1 en-us some text
1 en-gb some text
2 en-us some text
2 en-gb some text
Désolé, je fait une erreur dans mon post original, à la fois Id et la langue de la table de traduction sont des PK. De plus, plusieurs tables se réfèrent à ce tableau pour leurs traductions. –
Néanmoins, cela n'a pas de sens que l'association échoue à cause de la différence NULL. Les clés étrangères sont autorisées à être nulles, cela signifie simplement que l'élément n'a pas de traduction. Pouvez-vous poster le message d'erreur exact que vous obtenez? –
Je dois mentionner, il n'a pas de sens d'avoir une valeur unique 'Translation.Id' pas la clé primaire complète quand elle suffira à elle seule. Les clés étrangères sur la base de données ne seraient pas en mesure de lier directement à l'ID, vous devrez également inclure la langue.Je ne suis pas sûr si cela a quelque chose à voir avec le problème LINQ 2 SQL cependant. Le message d'erreur exact aiderait grandement. –