Je suis nouveau à Silverlight et donc l'accès aux données en Silverlight donc porter avec moi. J'ai un modèle de données d'entité ADO.Net référençant une base de données sql server 2008. La table causant des problèmes est appelée transaction. La table de transaction a un champ non nullable "MerchantChain". Cette table est remplie par un autre programme qui insère des chaînes vides dans le champ merchantchain lorsqu'une chaîne marchande n'est pas fournie. Donc, dans mon application Silverlight, je charge une grille avec des transactions basées sur des critères fournis par l'utilisateur. La grille est pour l'affichage seulement, mais je dois pouvoir mettre à jour le statut d'une transaction après qu'un utilisateur l'ait vu. J'ai donc défini le champ transaction.status et tenté une modification de soumission. Avant les échanges, la transaction.HasValidationErrors est fausse. Dès que la commande submitchanges est exécutée (dans le débogueur), HasValidationErrors a la valeur true et la commande submit renvoie une exception non gérée. L'erreur ValidationError est que le champ merchantchain est requis. Eh bien, c'est une chaîne vide - ce n'est pas nul. Aucune idée de quoi faire. C'est le studio visuel 2010, silverlight 4, vb.net.Silverlight RIA Services SubmitChanges Validation Erreur
Répondre
[Obligatoire (AllowEmptyString = true)]
Vous devez faire la chaîne vide autorisée. Aller à votre classe de copain et ajouter ceci. Plus de détails peuvent être trouvés ici:
Merci - a travaillé comme un champion! Pour les VBers, c'est le fichier [DomainServiceName] .metadata.vb. Et la syntaxe est
C'est juste moi ou MS aurait pu faire beaucoup mieux ici? –
Je ne suis pas très sûr de ce que vous voulez dire. Je suppose que vous voulez dire ne pas exiger le AllowEmptyString. La validation est appliquée en fonction de l'attribut RequiredAttribute. S'il y avait un champ obligatoire lié à une zone de texte, je voudrais que ma validation oblige l'utilisateur à entrer du texte sauf si je l'ai spécifiquement autorisé. La partie difficile est que RIA déduit ces attributs de la base de données. Ainsi, le concepteur db a marqué un champ de type chaîne de caractères 'non null', donc par défaut, RIA suppose également 'chaîne non vide'. L'idée derrière cela étant, si je vois [Obligatoire] je m'attends à ce que l'utilisateur doive entrer quelque chose. – JosephC
- 1. Débogage des services RIA de Silverlight SubmitChanges
- 2. Services Silverlight et WCF Ria
- 3. Silverlight 4, RIA Services Validation côté serveur multi-étapes
- 4. Silverlight 3 - erreur de formulaire de données avec validation RIA
- 5. Silverlight avec les services RIA
- 6. Silverlight, Services RIA, MVC2P2 = Pas de données
- 7. WCF RIA Services erreur de construction
- 8. RIA Services de commande de validation
- 9. Silverlight Bind à TextBlock de RIA Services
- 10. DB4O avec les services RIA Silverlight
- 11. WCF RIA Services de Silverlight 3.0
- 12. Silverlight (RIA Services) changement de culture spontané
- 13. Filtrage dans Silverlight avec les services RIA
- 14. Silverlight - RIA Services Data/Service problème
- 15. Silverlight 3 - Services RIA et LINQ
- 16. Gestion du contexte silverlight RIA services
- 17. C# Silverlight avec l'authentification des services RIA
- 18. Services RIA et relations dans Silverlight 3
- 19. services Silverlight de domaine ria pas appelé
- 20. Silverlight Services RIA question de cryptage
- 21. Services RIA .NET/Services WCF
- 22. Modification de ChangeSet dans les services RIA
- 23. NHibernate.Linq, services WCF RIA, erreur bizarre
- 24. Ria Services: Synchrone DomainDataSource.SubmitChanges()
- 25. Services WCF (avec RIA)
- 26. RIA Services: autorization personnalisé
- 27. Services RIA et services WCF: quelle différence
- 28. Silverlight UI Validation, en utilisant WCF mais pas RIA
- 29. Services RIA vs services de données ADO.NET
- 30. Services RIA personnalisés Classe
Ouch mon sympathique. Une conception qui rend un champ non-nullable mais considère une chaîne vide dans un tel champ comme une valeur acceptable et attendue demande des problèmes. – AnthonyWJones
@AnthonyWJones Les chaînes vides ne sont pas identiques aux chaînes nullables. Considérez la requête: SELECT * WHERE SomeString! = 'Foo', si SomeString n'est pas nullable, le jeu de résultats contiendra les valeurs de chaîne vides, si elle est nullable, ces lignes nulles seront manquantes. La chaîne vide est 'une chaîne de longueur 0', NULL est 'pas de chaîne, pas de longueur, pas de rien' – Sprague
@Eugarps: Umm .. ok merci pour ça. – AnthonyWJones