Ein Jahr ist es her und Moritz fehlt mir immer noch sehr! Ich denke ich werde jedes Jahr Silvester einen faden Beigeschmack haben 🙁
Kategorie: Allgemein
Standardkategorie für alle Beiträge
ASP.NET: Eigenen MembershipProvider schreiben
Manchmal kann es Sinn machen, nicht den standardmäßigen ASP.NET MembershipProvider zu nutzen. Daher möchte ich euch kurz erklären, wie ihr einen eigenen MembershipProvider schreiben könnt. Dabei ist es letztendlich euch überlassen, wo die Daten gespeichert sind.
Ich benutze bei einem Projekt etwa eine SQL-Datenbank und speicher bzw. lese die Daten per Stored-Procedures. Man könnte die Daten aber auch in einer XML-Datei speichern oder direkt hardcoded in der Klasse.
ASP.NET: Eigenen MembershipProvider schreiben weiterlesen
Frohe Weihnachten
Ich wünsche allen Lesern, Freunden, Kollegen, Familie und allen anderen frohe Weihnachten und ein paar schöne Tage im Kreis der Liebsten 🙂
Ich werd sie haben!
ADO.NET: Feld ausschließen
Als ich den letzten Beitrag schrieb, viel mir ja ein, dass man nicht immer alle Spalten an das Modell übergeben möchte. Oder das es nur Readonly oder ähnliches ist.
Im Prinzip ist es auch einfach, wenn man weiß wie es geht. Der Designer in Visual Studio ist da meiner Meinung etwas umständlich in der Handhabung.
So möchte ich bei meinem letzten Modell die ID auf Readonly setzen, da dies in der Datenbank automatisch hochgezählt wird. Die ID daher manuell zu setzen würde keinen Sinn ergeben.
Dazu öffne ich das Modell im Visual Studio Designer und wähle oben die Tabelle aus. Unten wird mir nun das Fenster „Zuordnungsdetails“ angezeigt (alternativ über Ansicht » Weitere Fenster). Hier wähle ich die Spalte durch anklicken aus, die ich bearbeiten möchte. Wichtig ist jetzt dass ich hier nicht das vordere MSSQL-Feld sondern den hinteren Bereich, also den C# Typen auswähle (siehe Markierung).
Im Eigenschaftsfenster könnt ihr nun die entsprechenden Werte ändern. In dem Fall setzen wir den Setter auf Private.
Wenn wir nun versuchen eine Id zu setzen, hagelt es Fehlermeldungen:
TestTable test = new TestTable(); test.Id = 3;
Fehlermeldung lautet:
Die Eigenschaft oder der Indexer "MvcApplication1.Models.TestTable.Id" kann in diesem Kontext nicht verwendet werden, da der set-Accessor nicht verfügbar ist.
Auf diesen Weg können wir auch noch andere Sachen ändern, z.B. den Getter verändern oder den Namen des Attributs ändern.
Ach sollte man ein Feld gar nicht im Modell haben wollen, so wählt man bei den Zuordnungdetails einfach „Löschen“ aus.
Auf den Weg könnt ihr das Feld später auch wieder ins Modell reinholen.
ADO.NET: Datenbankstruktur aktualisieren
Angenommen ihr habt eine Tabelle, auf die ihr mit dem ADO.NET Provider zugreift. Ihr habt ihn schön konfiguriert und nutzt ihn auch schon produktiv. Dieses Model könnte in etwa so aussehen:
Auch wenn man sich vorher Gedanken gemacht hat, kann es sein, dass sich die Struktur der Datenbank ändert. Ein neues Feld muss hinzugefügt werden als Beispiel. Wie in meinem Beispiel.
Nun möchte ich diese Änderungen natürlich auch möglichst einfach in mein Model bekommen, ohne dies neu anzulegen. Öffnet das Model in Visual Studio per Doppelklick, so dass ihr in den Designer kommt. Rechtsklickt dort irgendwo und wählt „Modell aus Datenbank aktualisieren“.
Wählt im folgenden Bildschirm den Reiter „Aktualisieren“. Hierbei sei erwähnt, dass nun alles aus der Datenbank aktualisiert wird! Also solltet ihr euch die Änderungen dann noch mal ansehen.
Zu guter letzt habt ihr nun das neue Feld in eurem Ado.Net Modell.