2009-07-16 6 views
0

Ich mache eine sehr Nicht-Standard-Build von Entity Framework. Ich habe EdmGen2 verwendet, um edmx aus einer db zu generieren, und teile die csdl-, msdl- und ssdl-Dateien der Komponenten in ihre eigenen Dateien auf. Die Metadaten in der Verbindungszeichenfolge zu ihnen sehen so aus:Entity Framework: Jeder Typname in einem Schema muss eindeutig sein

C: \ Downloads \ EDM | Dateiname.csdl | Dateiname.msdl | filename.ssdl

Ich habe einen Unit-Test, der nichts tut, sondern versuchen, die Verbindung zu öffnen, und ich bekomme diese Fehlermeldung (zusammen mit vielen anderen Spreu):

„Jeder Typ Name in einem Schema sein müssen Unique "

Wenn ich manuell in die CSDL gehen und eine" 1 "zu den Namen hinzufügen, bewegt es sich schließlich auf die msdl-Datei und beginnt sich über it zu beschweren. Offensichtlich wird das Schema im geöffneten Vorgang doppelt definiert ...

  1. Es gibt keinen Verweis auf die edmx im Test- oder abhängigen Projekt. In der Tat gibt es keine Referenzen auf diese, da dies ein Projekt ist, um all diese Dinge dynamisch zur Laufzeit zu generieren.
  2. Ich habe die Julie Lehrman/Do not Be Iffy Post gesehen, und es scheint nicht das Problem zu sein.

TIA ...

+0

EdmGen2 finden Sie hier: http://code.msdn.microsoft.com/EdmGen2 Wenn ich das gleiche Projekt erzeugt nehmen und ein Standardwerk machen, um es in einem Standalone-Klasse-Projekt, arbeitet der Ausgang gerade fein . –

Antwort

0

es heraus ... die Metadaten-Arbeitsbereich scheinbar hart für die drei Dateien suchen codiert (was Sinn macht), und wenn ich die Verzeichnisspezifikation in der Metadaten-Tag entfernt Alles begann zu arbeiten. Mein Metadatenattribut sieht jetzt so aus:

C: \ Downloads \ filename.csdl | C: \ Downloads \ Dateiname.msdl | C: \ Downloads \ filename.ssdl

Also ich denke, es ist ein Entweder-Oder-Vorschlag: Geben Sie entweder das Verzeichnis an, in dem sich die Dateien befinden, oder die einzelnen Dateispeicherorte.

Verwandte Themen