public class TreatmentRepository : IRepository<Treatment> { public void Add(Treatment item) { using (PatientsDataContext dc = new PatientsDataContext()) { dc.Treatments.InsertOnSubmit(item); dc.SubmitChanges(); } }
4 Réponses :
Avoir quelque chose à retourner, vous devez écrire une classe qui implémente IRÉPOSITOIRE
public class TreatmentsRepository : GeneralRepository<Treatment, PatientsDataContext>
{
protected override Table<Treatment> GetTable(PatientsDataContext dc)
{
return dc.Treatments;
}
}
Je modifie la question. J'ai un contexte de données LINQTOSQL. Est-ce que c'est faisable?
@Kubi - basé sur la réponse que vous avez acceptée, je dois dire avoir aucune idée de votre question! Vous avez demandé dans votre édition sur la réalisation de "DC.ThatObject.InserSubmit (article)" C'est ce que ma mise à jour traite.
Votre réponse a été la réponse exacte pour ma question mais la réponse acceptée résout également mon problème. J'aimerais pouvoir choisir 2 réponses comme correctes.
Vous pouvez faire sans le Enum code>. Vous avez besoin d'un type de référentiel générique ou de différents types de référentiels implémentant
IRÉPOSITOIRE
public class ObjectFactory<T>
{
public static IRepository<T> GetRepositoryInstance()
{
return new Repository<T>();
}
}
La plus simple des usines nécessite simplement que vos types dérivés d'un irpostage ont des constructeurs sans paramètre.
var treatmentRepo = ObjectFactory.GetRepositoryInstance<Treatment, TreatmentRepository>();
Quels sont les avantages de l'utilisation d'une usine de référentiel?
Je vous recommanderais d'utiliser un conteneur inversion de contrôle (COI) pour cela. En usine (ou vous pouvez même aller directement au conteneur de la COI), pourrait obtenir le type. ou mieux encore, il suffit d'utiliser une méthode générique dans votre usine p>