2009-07-09 6 views
1

Ich erstelle eine DBML-Datei aus einer Datenbank. Meine Tabelle "property" enthält Fremdschlüssel für die Tabelle "county" und für eine Tabelle "propertysource".dbml Entity-Beziehungsprobleme

Wenn Code generiert wird, wird Property.Source als PropertySource-Typ definiert, aber Property.County wird als Int anstelle des Grafiktyps definiert.

Ich fürchte, ich habe nicht die Erfahrung mit LINQ to SQL, um zu verstehen, was hier passiert oder warum das ist oder wie es zu beheben ist. Ich kann nichts Offensichtliches über mein Schema finden, das dies verursachen könnte. Wie kann ich den automatisch generierten Code erhalten, um zu erkennen, dass die County-Eigenschaft des Property-Objekts ein County-Typ ist?

Antwort

1

Wenn Sie den dbml-Designer öffnen, stellen Sie sicher, dass Sie über ein Diagramm verfügen, das zwei Pfeile aus der Property-Klasse zeigt: ein Pfeil zur County-Klasse und ein weiterer zur PropertySource-Klasse. Außerdem sollten Sie diese drei Klassen auch in Ihrem Designer haben.

Wenn das Objektmodell auf diese Weise nicht angezeigt wird, liegt wahrscheinlich ein Fehler bei der Einrichtung des Datenbankschemas vor.

Ich würde überprüfen, um sicherzustellen, dass Ihre Fremdschlüssel richtig eingerichtet sind.

+0

Das Diagramm sieht korrekt aus; Pfeile an den richtigen Stellen. Alle drei Entitäten befinden sich im Designer. Fremdschlüssel sind korrekt eingerichtet. –

+0

Könnten Sie ein Bild des Diagramms machen und es in Ihre Frage aufnehmen? Ich habe das Gefühl, dass es mit deinen Eigenschaften und ihrer Einrichtung zusammenhängt, aber ich kann mir nicht sicher sein, ob ich es sehen kann. – Joseph

2

Wenn Sie in der DBML-Datei auf die Eigenschaft klicken, können Sie den Typ über das Fenster Eigenschaften ändern. Im Eigenschaftenfenster gibt es ein Feld für Typ. Sie können einige der Standardtypen aus der Dropdown-Liste auswählen oder einen eigenen benutzerdefinierten Typ mit seinem vollständigen Namen eingeben, z. "MyProject.Location.Country.CountryType" usw.

Stellen Sie sicher, dass Sie Ihr Projekt neu erstellen, bevor Sie versuchen, in IntelliSense darauf zuzugreifen. Hoffe das hilft!

Verwandte Themen