ASP.NET MVC (MVC2) Best Practices beim Einfügen / Aktualisieren von Daten mithilfe von Linq to SQL und Repository Schichten

StackOverflow https://stackoverflow.com/questions/3105665

Frage

Ich bin ein bisschen ein Rätsel hier und ich bin für einige von euch Gurus zu Hilfe füllen die Lücken der Hoffnung.

Die Situation, die ich zur Zeit bin vor ist in Bezug auf meinen „Benutzer“ Tisch und meine „OpenID“ Tabelle. Meine App ermöglicht es einem Benutzer mehrere OpenID ist zu haben, so dass ich von ihnen halten Spur in einer separaten Tabelle.

  

Nutzer
  ID
  Benutzername

     

OpenID
  ID
  UserID
  Claimedidentifier

Ich habe eine CRUD-Repository für jede Tabelle, und ich habe auch einen Service, der eine Schnittstelle mit dem Repository (ein Service pro Repo).

Die Frage, die ich habe, ist in Bezug auf einen neuen Benutzer Einfügen (da die Aktualisierung das gleiche Haupt folgen). Hier sind die Optionen, dass ich in meinem Kopf habe.

  1. Haben Sie den Userservice Einsatz einen neuen Benutzer, die Kennung des Benutzers abrufen und dann eine neue OpenID einfügen mit der Benutzer-ID
  2. Haben Sie den Userservice die neuen Benutzer sendet zusammen mit dem ClaimedIdentifier zum UserRepository und hat die Repository Einsatz sowohl für den Benutzer und die OpenID (dies ist nicht die CRUD Methodik paßt sehr gut)
  3. Erstellen Sie eine Ansicht sowohl der Benutzertabelle ein OpenID-Tabelle, erstellen Sie eine UsersOpenIDRepository und UsersOpenIDService, und dann in die Ansicht eingefügt werden.

Jede andere Gedanken oder Anregungen jenseits dessen, was ich denken kann, sehr geschätzt.

Bitte beachten Sie, ich bin nicht mit NHibernate wobei ich meine Domain-Modell aber ich für richtig halten. Ich bin an diesem Projekt zu Linq to SQL kleben,

War es hilfreich?

Lösung

Nach meiner Erfahrung Linq2SQL paßt nicht die CRUD Methodik sehr gut sowieso. So dass es fit Mittel durch zu viele Reifen springen, es zu sein, wirklich wert. Das Problem, das Sie beschreiben, ist auch nicht die einzige -. Es wird noch schlimmer, wenn Entitäten zu aktualisieren

Deshalb entschied ich mich für die Lösung 2 (beide Einheiten in der usersrepostory Einfügen) in meinem aktuellen Projekt.

Ich habe auch für die Repositories auf Update-Methoden auf. Unstead meine Repositories einfach eine SubmitChanges Methode haben, die aufgerufen werden muss, nachdem alle Updates auf geladene Einheiten durchgeführt werden. Alle Repositories in der gleichen Web-Anfrage der gleiche Datacontext erstellt, so tut es nicht wirklich wichtig, welche Repository ich Anruf SubmitChanges auf. Es ist nicht CRUD, aber es eignet sich viel besser auf die LINQ2SQL Weise Datenbank-Updates durchzuführen.

Wenn Sie wirklich absolut reines CRUD wollen, möchten Sie vielleicht EF überprüfen, mit der Entität Generation Vorlage POCO.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top