Wie würde ein Skeleton-Design für ein Repository aussehen, das mehrere Datenbank-Layer mit ASP.NET MVC und C# unterstützt? Ich möchte sehen, wie ein Design aussehen würde, wenn ich sowohl LINQ to SQL als auch NHibernate unterstütze. Wie würde ich mein Datenbankobjekt erstellen und eine Methode in meiner BLL-Ebene aufrufen?Wie würde ich ein Repository für mehrere Datenzugriffsstrategien entwickeln?
1
A
Antwort
8
Die repository pattern ist wahrscheinlich die beste Lösung dafür. Sie würden für jedes Repository eine Schnittstelle definieren und dann konkrete Repositories für Linq2Sql- und NHibernate-Implementierungen erstellen, z.
public interface ICustomerRepository
{
Customer GetCustomer(int id);
}
public class NhibCustomerRepository : ICustomerRepository
{
public Customer GetCustomer(int id)
{
// NHibernate implementation
}
}
public class LtsCustomerRepository : ICustomerRepository
{
public Customer GetCustomer(int id)
{
// Linq2Sql implementation
}
}
A Dependency Injection-Framework, wie Ninject, macht es einfach, zwischen Implementierungen dynamisch zu wechseln. Sie müssen möglicherweise eine zusätzliche Injektion von Abhängigkeiten mit NHibernate durchführen, um die aktuelle ISession in Ihre Repositorys zu übertragen, damit sie an derselben Arbeitseinheit teilnehmen.
0
antwortete ich allready, dass zweimal xD
man hier
andere hier
ControllerFactory having controllers separated in a different project
Verwandte Themen
- 1. Android Entwickeln für mehrere Geräte
- 2. Wie würde ich ein Photoshop-Plugin für ein Bildformat schreiben?
- 3. Entwickeln Sie lokal mit einem Remote-Repository
- 4. Wie würde ich ein UIPickerView einrichten?
- 5. Wie konfiguriere ich am besten ein zentrales Repository/mehrere zentrale Repositories für Mercurial?
- 6. Wie kann ich ein Mercurial-Repository für mehrere Benutzer selbst hosten?
- 7. Wie würde ich ein Modell für diese WatchKit-Komplikationen erstellen?
- 8. Wie starte ich ein Git Repository
- 9. Mercurial-Repository-Layout für mehrere Zweige
- 10. Wie ein Jabber-Client entwickeln
- 11. Wie würde ich mehrere Zellen mit einem Eingang anhängen?
- 12. Wie würde ich den "Geltungsbereich" eines vorhandenen Git-Repository auf ein übergeordnetes Verzeichnis erweitern?
- 13. Entwickeln iphone App für ein Unternehmen
- 14. Wie würde ich
- 15. Ich möchte ein Add-on für Mozilla entwickeln
- 16. Wie setze ich eine bestimmte DataSource für ein Repository?
- 17. Wie mache ich ein Git-Repository schreibgeschützt?
- 18. Ein System für Erinnerungs-E-Mails entwickeln
- 19. Wie anonymisiere ich ein Merkur-Repository?
- 20. Multithreading: Wann würde ich ein Join verwenden?
- 21. Liste der Fernbedienungen für ein Git-Repository?
- 22. Wie würde ich mehrere Datensätze gleichzeitig in Rails speichern?
- 23. Emacs - Wie man ein Git-Repository auf mehrere Fernbedienungen pusht
- 24. Wie man msysgit Installation ein Remote-Repository
- 25. Wie ein losgelöstes Repository funktioniert
- 26. Für was würde ich ein Bündel machen? (Symfony 2)
- 27. Wie kann ich Modelle einfacher entwickeln
- 28. Wie würde ich Trac mit mehreren Repositories verbinden?
- 29. Wie organisiert man am besten ein SVN-Repository für mehrere Versionen von SQL Server? Haben
- 30. Kann ich mit VB.NET für MonoTouch entwickeln?
Ich hoffe, Sie Kreditierung SO für das Design und die Software zu schreiben. – Welbog
@Welbog: Solange er meine Beratungsrate bezahlt, ist es mir egal, ob er mir gutgeschrieben wird oder nicht. – Pesto