J'utilise LINQ to SQL pour accéder à ma base de données mais je ne fais que lire, je n'insère, ne mets à jour ou ne supprime jamais rien. Existe-t-il des moyens d'optimiser LINQ2SQL pour cela?Lecture seule LINQ to SQL
Répondre
Oui il y a. Linq 2 SQL met par défaut en cache toutes les données que vous avez lues dans la base de données. Il doit faire cela pour suivre toutes les modifications que vous appliquez à vos objets, afin qu'il puisse générer les instructions insert/update/delete nécessaires lorsque vous appelez SubmitChanges()
Si vous lisez uniquement des données, cela n'est pas cohérent. Vous pouvez désactiver le suivi des objets en définissant la propriété ObjectTrackingEnabled sur false sur votre DataContext.
Une chose m'a été dit, est d'éviter d'utiliser la classe d'enregistrement généré. En d'autres termes, si vous avez une table Users
, L2S créera pour vous une classe User
, qui est ce qu'elle renvoie de la base de données. Au lieu de l'utiliser directement, vous devez créer une classe "shadow" --- toutes les mêmes propriétés, mais rien d'autre, et copier immédiatement les données dans ces enregistrements pour votre usage. En fait, si elle va être en lecture seule uniquement, vous pouvez les assigner dans le cteur, et seulement getters publics:
class myUser
{
public string FName {get; private set}
public string LName {get; private set}
public myUser(User user)
{
this.FName = user.FName;
this.LName = user.LName;
}
}
var users = from u in db.Users
where .....
select new myUsers(u);
Cela évite beaucoup de frais généraux nécessaires pour faire face à la possibilité d'écrire l'objet encore dehors.
- 1. connectionstring dans LINQ to SQL
- 2. Linq to SQL: combiner deux colonnes pour créer une colonne personnalisée en lecture seule
- 3. LINQ to SQL Insert
- 4. Classes LINQ to SQL
- 5. Renvoyer une seule valeur avec Linq to SQL
- 6. Linq to SQL utilisant plusieurs DataContexts dans une seule requête
- 7. Problème Linq to Sql
- 8. Application LINQ to SQL
- 9. LINQ to SQL
- 10. Sql Query to Linq To Sql
- 11. LINQ To SQL Paging
- 12. LINQ to sql Beaucoup-un
- 13. Linq to Sql Mapping
- 14. LINQ to SQL Wildcards
- 15. LINQ-to-SQL IN()
- 16. LINQ to SQL, Generalization
- 17. Problème Linq to Sql
- 18. Requête LINQ to SQL
- 19. LINQ to SQL date
- 20. LINQ to SQL ASP.net
- 21. LINQ to SQL -DAL
- 22. Erreur LINQ to SQL
- 23. Linq-to-SQL ToDictionary()
- 24. Générateur SQL to LINQ
- 25. question LINQ to SQL
- 26. LINQ to SQL Groupement
- 27. Associations LINQ to SQL?
- 28. Linq to SQL Sum()
- 29. Test LINQ to SQL
- 30. LINQ to SQL requête