2008-09-03 18 views
7

Diese Frage ist zu einem Abschluss in dieser Frage auf LINQ to SQL .dbml best practices gerichtet, aber ich bin mir nicht sicher, wie Sie zu einer Frage hinzufügen.Verwalten von LINQ to SQL .dbml Modellkomplexität

Eine unserer Anwendungen verwendet LINQ to SQL und wir haben derzeit eine .dbml-Datei für die gesamte Datenbank, die schwierig zu verwalten ist. Wir versuchen, es ein wenig in separate Dateien umzuwandeln, die mehr modul-/funktionalspezifisch sind, aber ein Problem besteht darin, dass viele der höheren Klassen in mehreren .dbml-Dateien dupliziert werden müssen, da die Verknüpfungen nicht übergreifend verwendet werden können. DBML-Dateien (soweit ich weiß), mit dem zusätzlichen partiellen Klassencode.

Hat sich jemand mit diesem Problem auseinandergesetzt und welche Empfehlungen würden Sie treffen?

Antwort

0

Der Ansatz, den wir verwendet haben, um 2 .dbml-Dateien zu behalten. Einer von ihnen hält die Stored Procs und alle Produktions-DB-Zugriffe werden dadurch erledigt. Die andere befindet sich in einem Komponententestordner und enthält Tabellen und ihre Beziehungen. Sie wird für die Datenbankdatenmanipulation und die Abfrage von Komponententests verwendet.

1

Bei einer bestimmten Größe wird es wahrscheinlich einfacher, mit dem xml anstelle des dbml-Designers zu arbeiten.

2

Nutzen Sie die Namespace-Einstellungen. Sie können dazu in den Eigenschaften gelangen, indem Sie in den weißen Bereich des ORM klicken.

Dies ermöglicht mir eine Benutzer Tabelle und eine Benutzerklasse für einen Satz von Geschäftsregeln und eine zweite (aber den gleichen Datenspeicher) Benutzer Tabelle und eine Benutzerklasse für einen anderen Satz von Geschäftsregeln.

Oder brechen Sie die Bibliothek auf, was auch Auswirkungen auf die Änderung des Namespace haben könnte, abhängig von den Namenskonventionen Ihres Unternehmens. Ich habe noch nie an einer Enterprise-App gearbeitet, bei der ich auf jeden einzelnen Tisch zugreifen musste.

0

Ich habe ein Dienstprogramm geschrieben, um genau dieses Problem zu lösen, ich brauchte eine schnelle App, damit Sie nur die Datenbankobjekte auswählen können, die Sie benötigen. In meinem Fall brauchte ich oft eine komplexe Sichtweise, aber keine Tabellen.

http://www.codeplex.com/SqlMetalInclude/

+0

der Link funktioniert nicht für mich .... –

1

ich ein Tool auch geschrieben haben! Meine ist für Scripting Änderungen an DBML-Dateien mit C#, so dass Sie sie erneut ausführen können und keine Änderungen verlieren. Sehen Sie meinen Blog http://www.adverseconditionals.com 4 mehr Details

+0

Blog scheint nach unten. –

+0

Prost. Es stellt sich heraus, dass ich meine eigene Blog-Adresse nicht buchstabieren kann! – mcintyre321