Wie bereits erwähnt, arbeite ich an einem Dig-Clone, um mir ASP.NET MVC von Grund auf beizubringen, aber ich bin auf ein Problem gestoßen, das ich scheinbar nicht vermeiden kann.
Ich möchte diese Anwendung so gut wie möglich optimieren, daher habe ich meine DAL, die eine Menge Klassen von ...Repository: Repository ist. Um die Leistung zu optimieren, lassen meine Basis-Repository-Klassen meine ViewData-Objekte zurück, damit zusätzliche erforderliche Felder ausgewählt werden können, ohne einen anonymen Typen erstellen zu müssen.
Geschichten haben Benutzer, die sie erstellt haben, und Benutzer haben Stimmen für Geschichten. Ziemlich einfaches Datenbank-Layout. Da die Standard-ASP.NET-Mitgliedschaft so aufgebläht ist, handle ich meine eigene Mitgliedschaft. In meiner Ansicht für die Liste der Geschichten muss ich feststellen, ob der aktuelle Benutzer über die Geschichte abgestimmt hat, die gerendert wird. Da meiner Meinung nach der Datenzugriff in der Ansicht nicht stattfinden sollte, sollte er entweder in meinem Controller oder meiner DAL erfolgen. Da ich bereits ViewData von meiner DAL zurückgebe, habe ich eine weitere Eigenschaft vom Typ StoryViewData mit dem Namen "UserVotedOn" hinzugefügt, die true zurückgibt, wenn der Benutzer über die Geschichte abgestimmt hat.
Das Problem dabei ist, dass ich entweder A) die DAL über die Mitgliedschaft informieren muss oder B) die Benutzer-ID in die Abfrage-Methoden der DAL übergeben muss. Beides fühlt sich für mich nicht richtig an, und ich suche nach guten Lösungen. Jegliches Feedback ist willkommen.