Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
EF + dynamische Datenstruktur
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

EF + dynamische Datenstruktur

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Diräkt
myCSharp.de - Member



Dabei seit:
Beiträge: 622
Herkunft: Schweiz

Anmerkung

beantworten | zitieren | melden

Hallo [email protected]

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Diräkt am .
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers