2008-12-05 5 views
1

J'ai créé un fichier DBML pour un mappage LINQ to SQL et après avoir déplacé toutes mes tables dans la surface du concepteur. Dans les propriétés de chaque table, les champs "Supprimer", "Insérer" et "Mettre à jour" sont grisés afin de ne pas être modifiables comme s'ils étaient désactivés. Je ne suis pas sûr de savoir pourquoi. Est-ce que quelqu'un sait comment faire pour que je puisse insérer, mettre à jour et supprimer les valeurs à l'intérieur de ces tables?LINQ DBML ne me permet pas d'insérer, de mettre à jour, de supprimer ou de sélectionner des données dans des tables? Pourquoi?

Je sais également que j'ai la permission d'écriture parce que j'ai déjà écrit dans ces tables sur le même nom d'utilisateur.

Répondre

4

Vos tables ont-elles des clés primaires? LINQ to SQL ne vous permettra pas de modifier les données si vous n'avez pas de clé à utiliser. Je l'ai beaucoup rencontré avec les systèmes existants. La plupart du temps, la table utilise une clé de facto, mais elle n'est pas spécifiquement configurée dans la base de données. Dans ce cas, vous pouvez simplement marquer le champ comme principal (dans la base de données) et cela devrait fonctionner. Sinon, vous devrez peut-être ajouter une colonne de clé primaire juste pour donner à LINQ quelque chose à utiliser pour identifier chaque ligne de manière unique.

0

Si vous cliquez avec le bouton droit sur la table dans le concepteur et que vous choisissez les propriétés, les options Supprimer, Insérer et Mettre à jour sont grisées. Je ne suis pas sûr si vous pouvez fournir des méthodes alternatives Supprimer, Insérer et mettre à jour ...

Mais si votre question concerne l'insertion, la mise à jour et la suppression de valeurs dans vos tableaux, une fois que vous faites glisser une table sur votre concepteur dbml, vous pouvez insérer, mettre à jour et supprimer en utilisant linq dans votre code. Il n'y a rien d'autre qui doit être fait pour le dbml.

0

Sans modifier la base de données, vous pouvez également résoudre ce problème. Définissez la clé primaire dans le fichier DBML et cela fonctionnera correctement. LINQ a juste besoin de connaître la clé de facto. Vous pouvez également définir plusieurs colonnes en tant que clés.

LINQ est génial!

Questions connexes