2009-07-31 9 views

Antwort

20

Soweit ich weiß, gibt es keine eingebaute Funktionalität im Designer, um eine Tabelle mit Änderungen in einer Datenbank zu aktualisieren.

Es gibt Third-Party-Tools (http://www.huagati.com/dbmltools/), die diese Art von Funktionalität bieten.

Immer wenn ich auf dieses Problem stieß, war es in der Größenordnung von ein oder zwei Spalten in einer Tabelle mit mehreren manuellen Beziehungen bereits eingerichtet, so habe ich nur die XML bearbeitet (mit der rechten Maustaste auf die DBML und öffnen mit -> XML) und fügte die Spalten zur Tabellendefinition hinzu.

0

Es ist normalerweise ziemlich schmerzhaft. Kompilieren Sie, schließen Sie VS, öffnen Sie es wieder usw. Es sollte funktionieren, aber für mich gab es immer eine Verzögerung. Es kann einfacher sein, Ihr Modell manuell mit LINQ zu erstellen, was ich aber auch tue. Auf diese Weise habe ich die volle Kontrolle darüber.

11

Ich habe gehört, von einen seltsamen Trick, wo Sie eine neue Einheit für die modifizierte Tabelle erstellen und dann per Drag/schneiden die neue Eigenschaft der neuen Einheit auf Ihren alten. Habe es aber nie versucht.

+0

Beste Antwort so weit. Arbeiten wie ein Charme! – Tiborg

+1

Ja, das hat bei mir funktioniert. Für neue Leute wie mich: Ziehen Sie den Tisch in das linke Fenster, wo alle Tische sind. Dies erstellt "TableName1". Klicken Sie mit der rechten Maustaste auf die Spalte, um sie auszuschneiden, und klicken Sie dann mit der rechten Maustaste auf die Originaltabelle, um sie einzufügen. Wählen Sie "TableName1" und drücken Sie Löschen. – Chris

+0

Hm, ich hatte allerdings ein Problem: manchmal würde es eine andere Designer.vb Datei erstellen. Also habe ich den Inhalt der 2. Designer.vb kopiert und in das Original eingefügt und dann den neu erstellten gelöscht. – Chris

1

Es gibt keinen Mechanismus, um die DBML automatisch zu aktualisieren oder der DBML mitzuteilen, die Datenbank erneut zu lesen.

Ich glaube, der einfachste Weg ist es, die dbml-Datei im Designer zu öffnen, löschen Sie die Tabelle und fügen Sie es erneut auf der Entwurfsoberfläche. Dies kann jedoch von der Komplexität der Datenbank abhängen, d. H., Sie können bestimmte Informationen verlieren.

würde ich ein Backup der dbml Datei zuerst vor :)

0

Wenn Sie Änderungen an Ihrem Modell vorgenommen haben, Droping den Tisch und wieder schöpf es mehr Probleme verursachen kann, als es einen Versuch wert. In diesen Fällen würde ich empfehlen, den Designer (oder die dbml-Datei) manuell zu ändern. Berühren Sie nicht die Designer-Datei, da diese Änderungen überschrieben werden.

Eine weitere Alternative ist die Verwendung von SqlMetal als Teil Ihres Buildprozesses, um das Modell aus der Datenbank neu zu generieren.

1

Ich konnte meine Tabelle nicht löschen und neu hinzufügen (das ist der schnellste Weg), da sie als Rückgabetyp irgendwo verwendet wird. Auch ist es wahrscheinlich eine schlechte Idee, wenn Ihr db ist wirklich komplex

beste Weg für mich war:

derselben Tabelle hinzufügen öffnen dbml mit xml bearbeiten DBML (Rechtsklick -> Öffnen mit) Copy XML-Spalte Abschnitt aus der Tabelle, die Sie gerade hinzugefügt und in den Spaltenabschnitt der problematischen Tabelle eingefügt haben. Speichern Öffnen Sie Dbml regulären Weg Löschen Sie hinzugefügt Tabelle

Verwandte Themen