Laden...

EF + dynamische Datenstruktur

Erstellt von M@TUK vor 12 Jahren Letzter Beitrag vor 12 Jahren 697 Views
M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 12 Jahren
EF + dynamische Datenstruktur

verwendetes Datenbanksystem: <MSSQL 2008 r2>

Hi,

ich bin grad am überlegen wie ich folgendes realisieren kann.

Ich habe eine Tabelle:

TableX
=========
Id
Name
IsActive
IsDeleted

Nun soll der Benutzer eigene benutzerdefinierte Spalten hinzufügen können.

Variante A:

Es werden die zusätzlichen Spalten über ein ALTER-Statement zur Tabelle hinzugefügt. Problem ist aber dabei dass der DbContext nix davon mitbekommt bzw. die zusätzlichen Spalten hier nicht bekannt sind. Ich müsste dazu ja das Model aktualisieren und neu kompilieren.

Variante B:

Es gibt 2 weitere Tabellen

TableFields
=======
Id
FieldName
FieldType

TableFieldValues
==========
TableXId
FieldId
Value

Hiermit könnte ich relativ leicht neue Spalten anlegen und die Daten dazu speichern ohne die DB-Struktur angreifen zu müssen.
Problem ist hier (vermutlich) das Lesen der Daten aus der Datenbank, weil ich hier ja eine Art PivotTable auslesen müsste oder über eine Liste oder Dictionary.
Dann verliere ich aber wieder den Vorteil der Typisierung...

Hat jemand von euch sowas schon mal gemacht, bzw. gibts hierzu Best Practices?

thx
lg

D
615 Beiträge seit 2009
vor 12 Jahren
Anmerkung

Hallo M@tuk

Anmerkung :
=> Der Profile Provider (teil des Membership-Providers), löst das "Selbe" Problem in einem Feld.
Die Werte werden einfach getrennt und wieder ausgelesen. (Benutzerspezifisch)
Speicherart Profile Provider

In dem WebConfig wird dann der Typ zugewiesen :
Zuweisung Property - Typ (ja bei Dir würde die Typisierung verloren gehen)

Damit könntest du Dir ggf. die 2 Tabellen schenken 😉
(Vorausgesetzt ein Benutzer hat nicht tausende custom "Spalten")

Beste Grüsse

Diräkt

Edit:
Hier noch ein interessanter Link

M
M@TUK Themenstarter:in
402 Beiträge seit 2005
vor 12 Jahren

Hi...

Problem mit dem Speichern in einem Feld ist hald, dass ich gerne auf die benutzerdefinierten "Spalten" filtern und sortieren können möchte und das wird damit etwas schwierig.

lg