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:
- Abrufen von Daten aus SQL mit der C# Metro-App
- System.Data für Apps im Metro-Stil verfügbar machen
- WinRT System.Data – Mit SQL verbinden
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.