Je me demandais simplement s'il existait un moyen de prendre une partie de la répétition d'un type projeté LINQ to SQL.LinqToSql: Comment créer une projection pour adhérer à DRY?
Exemple:
Tableau: Adresse
Domaines: AddressID, HouseNumber, Rue, Ville, État, Zip, +20 plus
Classe MyAddress: AddressID, HouseNumber , Rue (seulement 3 champs)
LINQ:
from a in db.Addresses select new MyAddress { AddressID = a.AddressID, HouseNumber = a.HouseNumber, Street = a.Street }
La requête ci-dessus fonctionne parfaitement, et je comprends pourquoi quelque chose comme cela renverra tous les champs 20+ dans chaque ligne:
from a in db.Addresses select new MyAddress(a); class MyAddress { public MyAddress(Address a) { this.AddressID = a.AddressID, this.HouseNumber = a.HouseNumber, this.Street = a.Street } }
Ce qui me conduit à ma question:
Est Est-il possible d'implémenter une sorte de fonction d'aide ou une méthode d'extension pour "mapper" du modèle LINQ à MyAddress mais seulement retourner les champs nécessaires dans le résultat de la requête plutôt que tous les champs?
Pourquoi avez-vous besoin d'un type de données réduit pour commencer? –
Si je travaille avec une table qui a 20-30-40 champs et que j'ai seulement besoin de/want 3, pourquoi SQL fait-il le travail et renvoie toutes ces données supplémentaires sur le fil? – Mike