2009-07-24 8 views
0

Ich bin etwas neugierig auf dbml .... Sollte ich eine dbml-Datei für eine Datenbank erstellen oder in verschiedene Teile z. Benutzer-dbml (nur Tabellen beziehen sich auf Benutzer) usw.? Wenn ich das mache, habe ich Probleme. Angenommen, der Benutzer dbml hat eine Benutzertabelle und wenn die Datenbank dbml auch eine Benutzertabelle hat, ist dies nicht erlaubt, wenn der Entitätsnamensraum derselbe ist. Wenn ich einen anderen Entity-Namespace für jeden der dbml gesetzt habe, funktioniert es, aber dies gibt mir eine andere Entität der User-Tabelle. Wenn einzelne Daten zur Business-Logik-Ebene zurückkehren, ist es schwierig zu wissen, welcher Entitätsnamespace der Benutzertabelle verwendet werden soll.Linq zu Sql Datenklasse in dbml

Wenn ich eine dbml-Datei anstelle einer separaten dbml erstellt habe, wird einzelne dbml beim Abrufen der Daten aus der Datenbank langsamer als die getrennte dbml-Version angezeigt.

+1

Siehe auch http://stackoverflow.com/questions/1127283/linqtosql-mapping-out-the-datacontext-with-lots-of-tables –

Antwort

1

Linq to SQL wurde für den Betrieb mit einem einzelnen Data Context-Objekt entwickelt.

Lebensdauer einer LINQ to SQL Datacontext
http://blogs.msdn.com/dinesh.kulkarni/archive/2008/04/27/lifetime-of-a-linq-to-sql-datacontext.aspx

Die NerdDinner Tutorial hat ein ziemlich gutes Beispiel für typische Linq to SQL-Nutzung, ein Repository Muster. In allen Fällen verwenden die Repository-Objekte ein einzelnes Objekt Datenkontext die Arbeit zu verrichten:

http://nerddinnerbook.s3.amazonaws.com/Part3.htm

Was Sie versuchen, klingt zu tun, wie es für die Entity Framework besser geeignet sein könnten. Beachten Sie jedoch, dass das Entity Framework in seiner aktuellen Version einige Probleme hat, insbesondere im Hinblick auf das verzögerte Laden.