Im aktuellen Projekt, an dem ich gerade arbeite, verwenden wir das asp.NET-Profil, um Informationen über Benutzer zu speichern, z. B. ihre Beteiligung an einer Mailing-Liste.Warum ist das ASP.NET-Profil so schrecklich gestaltet?
Jetzt, um eine Liste aller Benutzer in der Mailing-Liste zu erhalten, kann ich nicht einfach eine Datenbankabfrage tun, wie die ASP.NET-Profiltabelle ist einfach gesagt, schrecklich.
Für diejenigen, die nicht wissen, hat die Profiltabelle zwei Hauptsäulen, die ‚Schlüssel‘ Spalte und ‚Werte‘ Spalte, und sie sind so organisiert:
Keys: Key1: datatype: start : endIndex: Schlüssel2: dataType. . usw.
Werte: value1value2value3 ...
Dies ziemlich unmöglich ist SQL zur Abfrage verwenden, so dass die einzige Option, um Benutzer zu finden, die eine bestimmte Eigenschaft hat, ist eine Liste aller Benutzer zu laden und Schleife durch es hindurch.
In einer Site mit über 150k Mitgliedern ist dies verständlicherweise sehr langsam!
Gibt es bestimmte Gründe, warum das Profil so entworfen wurde, oder ist es nur eine schreckliche Art, dynamisch generierte Daten zu erstellen?
Sie haben Recht. Der Profilanbieter wie er ist, wurde nicht für viele Daten erstellt. –
Ja, ich stimme zu Ich habe oft eine separate "Benutzer" -Klasse, mit einer MembershipID Eigenschaft, die die Mitgliedschafts-ID GUID an diese Klasse bindet ... mit allen meinen Profilinformationen in. – Alex