Quelqu'un sait comment modifier la source de données actuelle d'un DataServices à la volée? Exemple: Je veux consulter le service et passer un paramètre indiquant de prendre une autre connexion, Est-ce possible?Modifier DataSource Services de données WCF
Répondre
Si vous voulez passer la connexion désirée dans l'URL, je pense que votre seule option est de créer deux DataServiceHosts.
http://server/datasource1/service.svc
et
http://server/datasource2/service.svc
Il devrait être très simple il existe une méthode de remplacement, vous pouvez utiliser qui crée une source de données.
//
// Summary:
// Creates a data source of the template class that will be used by the data
// service.
//
// Returns:
// An instance of the data source.
protected virtual T CreateDataSource();
En cas de substitution, il devrait ressembler à ceci.
protected override MyModel CreateDataSource()
{
MyModel modal = new MyModal();
return modal;
}
Cela donnerait la possibilité de créer une source de données avec une chaîne de connexion différente. Ci-dessous j'ai ajouté une liste de choses que vous pouvez faire pour transmettre cette information à DataService afin que vous puissiez changer la connexion de votre source de données à la volée.
1. Demande en-têtes
Vous pouvez le passer côté client des informations supplémentaires aux services de données si vous vous abonnez le SendingRequest sur DataServiceContext, ce qui vous permet d'ajouter des en-têtes de demande supplémentaires à vos requêtes Web. Une fois que vous faites cela par exemple, vous pouvez les lire en accédant à System.Web.HttpContext.Current.Request.Headers sur la méthode CreateDataSource.
Il aurait été agréable de pouvoir accéder à l'interface interne d'IDataService qui expose toutes les informations dont vous avez besoin pour faire ce genre de chose.
2. Chaîne de requête
Une autre façon de faire sortir le SendingRequest et les en-têtes est d'ajouter un paramètre QueryString que vous pouvez vérifier la valeur spécifique et initialiser en conséquence la source de données.
3. Identité
Vous pouvez utiliser les informations d'identification des utilisateurs de choisir quelle source de données que vous souhaitez utiliser.
Encore une fois ce ne sont que des idées sur la façon d'obtenir cette sélection de sources de données.
Vous pouvez faire un certain nombre de choses avec les stratégies ci-dessus, j'espère que cette réponse à votre question et il vous aide à votre problème
PS .: aussi longtemps que ce que vous entendez par « changer la source de données » est le changement la chaîne de connexion de votre modèle à une autre base de données ci-dessus fonctionnera.
Essayez de surcharger la fonction CreateDataSource dans la classe DataService. Cela vous permettra de créer votre propre DataSource avec n'importe quelle chaîne de connexion.
- 1. Installation des services de données WCF
- 2. WCF Services de données et Entity Framework
- 3. Authentification des services de données WCF
- 4. Remplacer DataSource pour les rapports RDLC de Reporting Services
- 5. Utilisation de l'adhésion à asp.net "THROUGH" services de données wcf?
- 6. Déployer des services WCF dans SharePoint sans modifier Web.Config?
- 7. Création de services WCF
- 8. Services de rappel WCF
- 9. Services RIA .NET/Services WCF
- 10. Services d'application Vs Services WCF
- 11. WCF Data Services FTP
- 12. Services WCF RIA, SL4
- 13. isOneWay Services WCF
- 14. Les services Ria remplacent les services WCF
- 15. Ajout de méthodes REST aux services de données WCF?
- 16. Services de données WCF (oData): Injection de dépendances avec DataService
- 17. Encapsuler une couche d'accès aux données avec les services de données WCF ou WCF
- 18. Différence entre le service WCF, les services RIA WCF et le service de données WCF
- 19. ASP.NET avec WCF Data Services ou WCF Data Services
- 20. Problèmes d'accès aux services de données WCF - 403 interdit?
- 21. Services de données WCF avec authentification intégrée issue
- 22. Limiter l'accès à l'aide des services de données WCF
- 23. Gestion des exceptions avec les services de données WCF
- 24. Services de données WCF: Appel à SaveChanges() provoque 100% CPU
- 25. Comment refactoriser les contrats de données dans les services WCF?
- 26. Où se trouvent les services de données WCF et ADO.Net?
- 27. Les services de données WCF sont-ils morts pour Silverlight?
- 28. Services WCF grossiers Grain
- 29. EnableDecompression pour WCF - services?
- 30. Déploiement des services WCF