Bonjour,
J'ai crée un projet web service qui se connecte sur une base sql server assez datée et "mal construite" dans le sens où il n'y aucune contrainte de clé étrangère.
J'ai crée un modèle dbml des tables qui me sont utiles via l'interface graphique.
Je peux donc accéder à mes données via des pseudo-requêtes au format linq to sql. Tout fonctionne parfaitement dans les cas simple.
Cependant en raison de l'absence de contraintes (que je ne suis par ailleurs pas en mesure de créer), il m'est impossible d'accéder aux éléments enfants par les jointures "automatiques" de linq.
Je dois donc écrire manuellement mes jointures dans mes requêtes. Pour plus de clarté je décide d'écrire en SQL via l'utilisation de ExecuteQuery.
Efin de pourvoir remonter les informations construites par jointure je modifie mon modèle en ajoutant des champs dans un classe partielle, et en effectuant une déclaration de type [Column(Name = "type_libelle")].
Ce faisant j'arrive bien à récupérer les informations que je recherche.
Malheureusement lorsque par la suite je fais un insert dans la table j'obtiens une erreur SQL me disant que le champ "type_libelle" n'existe pas dans la table.
Mon altération du modèle rend donc impossible la modification des données en base (ce qui n'est bien sur pas acceptable)!
Une solution consisterai bien sur à coder la requete à l'ancienne avec utilisation de recordSet etc..., mais je ne trouve pas ça très satisfaisant.
Auriez-vous une idée de comment procéder pour obtenir ce que je recherche sans me passer totalement des apports de linq?
Partager