Laden...

[Microsoft SQL Compact 3.5 und Entity Framework] Beziehungen und Datentypen

Erstellt von Ayke vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.941 Views
Ayke Themenstarter:in
643 Beiträge seit 2006
vor 13 Jahren
[Microsoft SQL Compact 3.5 und Entity Framework] Beziehungen und Datentypen

verwendetes Datenbanksystem: Microsoft SQL Compact 3.5

Hi,

wie ist das eingentlich mit den Datentypen ?
Ich kann immer eine max. Länge von 4000 für eine Spalte angeben.
Wenn ich jetzt ein nvchar(4000) erstelle heist das ich nur 4000
Zeichen in der Spalte speichern kann ? Wie ist das mit Image, da ist nur 16 erlaubt .Von was 16 ? Oder der Typ Binary. Da reichen wohl kaum 8000 Bytes für eine Spalte.

Auserdem habe ich 2 Tabellen

<TABELLE1>
ID
TEXT

<TABELLE2>
ID
IMAGE
ID_TABLE1

Ich möchte später in einen Gridview einen Text mit mehren Bildern dazu anzeigen.
Wie muss ich die beziehung mit Microsoft Entity erstellen ?
ID_TABLE1(TABELLE2)->ID(TABELLE1)

Ayke Themenstarter:in
643 Beiträge seit 2006
vor 13 Jahren

Kommt schon das wisst ihr doch 😉

1.029 Beiträge seit 2010
vor 13 Jahren

Hi,

die Binarytypen, etc. erlauben wirklich nicht mehr.

Image kann mehr 😉 http://msdn.microsoft.com/en-us/library/ms172424.aspx

Was bitte meinst du mit wie ?!? Im Visual Studio - Tabellendesigner - Kontextmenü - Beziehungen ?

Gruß und Guten Morgen

Achim

T
156 Beiträge seit 2010
vor 13 Jahren

Hallo,
Du redest vom Entity Framework, oder? Konnte mir nichts unter Microsoft Entity vorstellen.

Wenn Du die Relationen in der Datenbank erstellt hast (und diese sollten auf jeden Fall dort erstellt werden) und die Tabellen als Entitäten ins Modell übernimmst werden die Relationen zwischen den Tabellen automatisch vom Framework abgebildet.

Mit den Bildern: Ich würde wahrscheinlich das Bild nicht als Blob in der DB speichern, sondern nur den Link zu dem Bild. Es könnte sonst einfach mal lange dauern, das Bild zu speichern oder zu laden und wieder in ein Bild umzuwandeln.
LG, Marko

16.807 Beiträge seit 2008
vor 13 Jahren

Mit den Bildern: Ich würde wahrscheinlich das Bild nicht als Blob in der DB speichern, sondern nur den Link zu dem Bild. Es könnte sonst einfach mal lange dauern, das Bild zu speichern oder zu laden

Dafür bietet das EF das TableSplitting an. Wurde zum Beispiel hier angesprochen.

Ayke Themenstarter:in
643 Beiträge seit 2006
vor 13 Jahren

Danke für eure Antworten. Ich mache jetzt die Beziehungen direkt in der Datenbank. Komme trotzdem nicht vorwärts.


public class
{
   string Vorname;
   string Nachname;
   bitmap[] Bilder;
}

Da es mehrere Bilder sind kann ich keine Tabelle erstellen die so aussieht.

Vorname (type nvchar)
Nachname (type nvchar)
Bilder (type image) das geht nicht es sind ja mehrere Bilder

Also habe ich mir gedacht ich mache 2 Tabellen

TABELLE 1

Vorname (type nvchar)
Nachname (type nvchar)

TABELLE 2


Bild

So dann habe ich versucht eine Beziehung hinzufügen.
Recht Maustaste auf Tabelle mit Vorname, Nachname | Tabelleneigenschaften | Beziehung hinzufügen.
Regel aktualisieren = NO ACTION
Regel löschen = NO ACTION
Primärschlüsselspalte = ID
Fremdschlüsselspalte = ??? Es sind mehre Bilder also auch mehrere Fremdschlüssel oder ??

H
208 Beiträge seit 2008
vor 13 Jahren

Wenn es pro Person mehrere Bilder geben soll, dann ist es schon richtig, das Ganze in 2 Tabellen aufzuteilen.
Du schreibst auch daß Du irgendwo eine "Primärschlüsselspalte = ID" hast, aber aus Deinem Text geht nicht hervor in welcher Tabelle die ist.

Es sollte eigentlich so aussehen: Deine Personentabelle braucht einen eindeutigen Schlüssel, auf den in der Bildertabelle verwiesen wird.

PersonId (Primärschlüssel)
Vorname
Nachname
BildId (Primärschlüssel)
PersonId (Fremdschlüssel)
Bild
Ayke Themenstarter:in
643 Beiträge seit 2006
vor 13 Jahren

ok...
die Primärschlüsselspalte lege ich eingentlich immer an. Wollte die Beziehung bei der Personentabelle hinzufügen. Das war mein Fehler.
danke