2010-02-10 4 views
1

Je peuplant un DataGrid avec le code LINQ suivant:LINQ to SQL ne met pas à jour si j'inclus une colonne calculée

 Dim myClients = From p In dc.Persons _ 
        Select p 

Je peux naviguer dans mon DataGrid, apporter des modifications, puis cliquez sur un bouton qui appelle

 dc.SubmitChanges() 

Tout cela fonctionne bien et met à jour SQL Server. Je voulais ensuite ajouter une seule colonne supplémentaire qui afficherait un âge calculé sur la base d'une fonction. J'ai utilisé le code suivant pour créer une colonne PersonAge et cela a fonctionné.

 Dim myClients = From p In dc.Persons _ 
       Select New With {p.PersonID, _ 
        p.PersonName, _ 
        p.PersonGender, _ 
        .PersonAge = CalcCurrentAge(p.PersonDOB, p.PersonFirstContactDate, p.PersonFirstContactAge) _ 
        } 

Toutefois, j'ai remarqué que je ne parviens plus à sauvegarder les mises à jour SQL. Donc, ma question est, comment puis-je prendre la simplicité du premier code LINQ qui enregistre correctement les mises à jour, et le mélanger avec le deuxième code LINQ qui inclut la colonne PersonAge pour créer un DataGrid modifiable avec une colonne d'âge calculée? Faites votre calcul pour votre colonne de données dans votre DataGrid, plutôt que dans l'instruction Linq

Répondre

3
+0

Salut Robert, je le prends de votre réponse que si vous voulez mettre à jour en utilisant LINQ, je ne peux pas avoir des colonnes calulated? Ce n'était pas juste un cas de codage incorrect de mon LINQ alors? – Mitch

+0

Je suppose que la colonne calculée dans l'instruction Linq ne correspond à aucune colonne correspondante de la base de données et que la mise à jour entière échoue. –

Questions connexes