5

c#/XML で新しい Windows 8 アプリを作成し、 mongodb c# ドライバーをダウンロードして、その参照をプロジェクトに追加し、残りのチュートリアルに従いますが、アプリを実行しようとすると、

Cannot resolve Assembly or Windows Metadata file 'System.Data.dll'

Type universe cannot resolve assembly: System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

よろしくお願いします。

4

2 に答える 2

4

system.dataメトロ アプリでは利用できないようです。メトロ アプリがデータベースと通信できるようにするには、(WCF などのテクノロジを使用して) 中間の "仲介" 層を作成する必要があるというのが一般的なコンセンサスのようです。

参考文献:

これらのリンクのタイトルには SQL が含まれていますが、メトロ アプリを任意のデータベースに直接接続することを実際に扱っています。

上記のリンクのいずれかでの回答の一部を次に示します。

おっしゃるとおり、System.Data はありません (最初に WinRT をいじり始めたときに同じものを探しました)。参照することもできません。SQL データベースと対話したい場合は、何らかの他のプロトコル (WebService、SOAP、WCF など) を使用する必要があります。


コメントのフォローアップの質問:

sql ではなく mongodb に接続しようとしています。この目的のために system.data が必要ですか?

これを試したところ、単体で参照できMongoDB.Bson.dllてプロジェクトがビルドされたのですが、一度参照MongoDB.Driver.dllするとあなたと同じメッセージが出ました。

sql ドライバーと mongodb ドライバーの両方が requireを必要としているように見えSystem.Data.dllますが、これは標準の winforms/wpf アプリで直接参照できますが (おそらくすべきではありません)、metro アプリで直接参照することはできません。

System.DataMongoDB を使用する場合は、アクセスする必要があると思います。そのため、MongoDB ドライバーを参照して実際にデータベースへの接続を実行する別のプロジェクトを作成し、WCF 呼び出しまたは Web サービスを介してそのプロジェクトにメトロ アプリからアクセスできるようにする必要があります。直接接続することはできないため、metro アプリとデータベースの間に配置する必要があるだけです。

特に遊んでいるだけの場合は、事態がより複雑になるように思われることはわかっていますが、Microsoftがメトロアプリに関して行った設計上の決定であるようです.

于 2013-03-23T17:35:00.683 に答える
0

これらの投稿を見てください。DLL はまだ利用できないことが言及されています: Using NHibernate in a Metro & http://social.msdn.microsoft.com/Forums/en-US/DataMarket/thread/385475ce-edf9-416f -b0f7-1369760aa73b/

于 2013-03-23T17:33:05.557 に答える