2010-11-13 1 views
1

Je viens me suis demandé est-il vraiment nécessaire de passer la totalité de la liste SelectedCustomers à la méthode de suppression du référentiel comme:Passer des entités complètes au référentiel ou simplement les ID pour les supprimer?

_customerRepo.DeleteCustomers(SelectedCustomers); 

Ne serait-il pas préférable de passer juste le Id`s des clients à supprimer comme

List<int> SelectedCustomerIDs = GetSelectedCustomersIDs(SelectedCustomers); 
_customerRepo.DeleteCustomers(SelectedCustomerIDs); 

Je n'utilise un ORMapper qui accepte sûrement que des entités complètes à AcceptChanges ou pour le retirer du contexte. J'utilise sqlite donc je pensais que passer une liste de valeurs int est plus rapide/moins Ram que de passer une liste d'entités.

Qu'en pensez-vous?

Répondre

1

Les objets sont déjà en mémoire et vous ne les copiez pas en les passant dans le référentiel, mais seulement les références à ceux-ci. Ainsi, vous ne sauvegarderez pas sur la mémoire (sauf si votre référentiel est sur un serveur différent).

Tant que votre référentiel n'utilise que les ID à transmettre à la base de données, cela ne pose aucun problème.

+0

Votre réponse m'a donné un bon indice. Si je veux avancer plus tard vers un framework ORMapper, il n'est pas bon d'utiliser des Non-Entités comme valeur int comme paramètre dans mes IRepositories parce que je dois réécrire toutes les Interfaces ... passer des entités NOW au lieu de valeurs int me prépare par exemple. Cadre d'entité. Ok, je vais passer l'ensemble de l'entité :) – Elisabeth

Questions connexes