Frage

Ich habe in den letzten paar Tagen mit einem Problem zu kämpfen und haben keine Lösung gefunden.

Ich habe eine Visual Studio-Lösung mit 2 Projekten, wobei die erste eine DLL mit meinen Business-Objekten und Logik, das andere Projekt ist meine WinForm-Anwendung und eine Referenz Abhängigkeit von dem ersten Projekt.

Ich schrieb zunächst die Business-Objekte mit Attribute LINQ-Mapping und alles funktioniert gut. Dann dachte ich, ich würde externen Mapping versuchen. Ich folgte ein paar verschiedene Führungen an, wie es funktionieren soll; aber jedes Mal lief ich den Code in meiner Lösung würde ich ein InvalidOperationException erhalten: Mapping Problem: Kann nicht Typen ‚Org.Example.System.Material‘ von Mapping finden , wenn die WinForm versucht, das Datacontext-Objekt zu erstellen .

Nach verschiedenen Konfigurationen in der XML-Datei versucht, legte ich eine Kopie der Klasse in meine GUI-Lösung unter einem anderen Namespace und es funktionierte. Meine Frage ist, ist es nicht möglich, ein Objekt in einer Klassenbibliothek zur Karte oder wenn es, wie es ist durchgeführt.

Beispiele

dbmap.xml

<Database xmlns="http://schemas.microsoft.com/linqtosql/mapping/2007" Name="Gravel_Dev"><Table Name="dbo.Materials" Member="Material">
<Type Name="Org.Example.System.Material">
  <Column Name="MaterialID" Member="MaterialID" Storage="mMaterialID" DbType="UniqueIdentifier NOT NULL" IsDbGenerated="true" IsPrimaryKey="true"/>
  <Column Name="Code" Member="Code" Storage="mMaterialCode" DbType="Char(4)"/>
  <Column Name="Description" Member="Description" Storage="mDescription" DbType="VarChar(50)"/>
  <Column Name="UnitPrice" Member="UnitPrice" Storage="mUnitPrice" DbType="Decimal(5,2)"/>
</Type>

    

WinForm Laden

XmlMappingSource mapping = XmlMappingSource.FromUrl("dbmap.xml");
mContext = new DataContext(Properties.Settings.Default.dbConn, mapping);
reloadTable();
War es hilfreich?

Lösung

ich glaube, das Problem, das Sie vielleicht bekommen ist, dass die Montage / Klassenbibliothek Klassen enthalten, in den Speicher wurde in diesem Stadium nicht geladen?

Versuchen Sie, eine Klasse in der Bibliothek zugreifen, bevor Sie den Datenkontext Instanziierung zu sehen, ob das funktioniert.

Andere Tipps

Ich habe das gleiche Problem. Wir haben eine Zuordnungsdatei, die verschiedene Baugruppen abbildet und wir erhalten die Mapping-Fehler, da alle assemplies nicht in den Speicher geladen werden. Was sind die verschiedenen Lösungen für dieses Problem?

Ich habe gelesen, dass ist ist möglich, einen Typ in einer anderen Assembly verweisen die AssemblyQualifiedName des Typs verwendet wird. Aber wir haben es nicht zu arbeiten. Wenn dies möglich ist, können Sie ein Beispiel dafür, was diese aussehen würde?

Eine andere Lösung, nehme ich an, ist für jede Baugruppe eine Zuordnungsdatei haben und die Datacontext die richtige Zuordnungsdatei zur Laufzeit geben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top