MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Die Assembly- oder Windows-Metadatendatei „System.Data.dll“ kann nicht aufgelöst werden

Sieht aus wie system.data ist für Metro-Apps nicht verfügbar. Der allgemeine Konsens scheint zu sein, dass Sie eine mittlere „Vermittlerebene“ (unter Verwendung einer Technologie wie WCF) erstellen müssen, damit Ihre Metro-App mit der Datenbank kommunizieren kann.

Referenzen:

Obwohl diese Links SQL im Titel haben, beziehen sie sich wirklich darauf, Metro-Apps direkt mit jeder Datenbank zu verbinden.

Hier ist ein Ausschnitt aus einer Antwort auf einen der obigen Links:

Folgefrage im Kommentar:

Als ich das versuchte, konnte ich auf MongoDB.Bson.dll verweisen von selbst und das Projekt wird erstellt, aber sobald ich auf MongoDB.Driver.dll verwiesen habe Ich habe die gleiche Nachricht wie du.

Es scheint, dass sowohl der SQL-Treiber als auch der Mongodb-Treiber System.Data.dll erfordern , auf die Sie in einer Standard-WinForms/WPF-App direkt verweisen könnten (aber wahrscheinlich nicht sollten), aber auf die Sie in einer Metro-App nicht direkt verweisen können.

Ich würde sagen, es ist notwendig, Zugriff auf System.Data zu haben wenn Sie MongoDB verwenden möchten. Sie müssen also ein separates Projekt erstellen, das auf den MongoDB-Treiber verweist und tatsächlich die Verbindungen zur Datenbank herstellt, und dieses Projekt für Ihre Metro-App über WCF-Aufrufe oder einen Webdienst zugänglich machen. Sie brauchen nur etwas, das sich zwischen Ihrer Metro-App und der Datenbank befindet, da Sie sich nicht direkt damit verbinden können.

Ich weiß, dass es die Dinge komplizierter zu machen scheint, besonders wenn Sie nur versuchen, herumzuspielen, aber es ist anscheinend eine Designentscheidung, die Microsoft in Bezug auf ihre Metro-Apps getroffen hat.