2009-02-06 7 views
0

J'ai un objet Linq 2 SQL que j'essaye de mettre à jour. Deux des propriétés de cet objet sont liées entre elles et la définition de l'un définit l'autre.Pouvez-vous empêcher LinqDataSource de définir une propriété?

Donc, si je fais:

Foo.Code = BEER;

La propriété Foo.CodeID sera automatiquement réglé sur 5 (ou autre.)

Le problème est que LinqDataSource définit Foo.Code, puis met immédiatement Foo.CodeID ... qui est pas lié à quoi que ce soit depuis nous voulons que les utilisateurs définissent seulement le code. Cela les ramène immédiatement à zéro.

Je sais que je peux utiliser des paramètres aux valeurs par défaut, mais est-il possible de dire à LinqDataSource de ne même pas définir une propriété?

EDIT: A contourner le problème en créant un champ masqué et en affectant la valeur correcte à celle dans l'événement ItemUpdating de formview. J'aimerais quand même éviter d'effectuer la même recherche quatre fois ...

Répondre

0

Serait-ce une option de rendre la propriété Code privée (sélectionnez la propriété Code dans le dbml et définissez la propriété access dans la fenêtre Propriétés) et créez une nouvelle propriété publique sur laquelle vous avez plus de contrôle?

J'ai personnellement écrit un générateur qui génère les fichiers nécessaires pour moi (comme sqlmetal), me donnant un contrôle total sur le code. Peut-être que c'est une option pour vous aussi, si vous n'aimez pas le dbml généré.