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

Metro 应用程序似乎system.data无法使用。普遍的共识似乎是您必须创建一个中间“中间人”层(使用 WCF 等技术)以允许您的 Metro 应用程序与数据库进行通信。

参考:

尽管这些链接的标题中有 SQL,但它们确实解决了将 Metro 应用程序直接连接到任何数据库的问题。

以下是上述链接之一的答案:

你是对的,System.Data 不存在(当我第一次开始使用 WinRT 时,我也在寻找同样的东西)。您也将无法引用它。如果您想与 SQL 数据库通信,您将需要使用某种其他协议(WebService、SOAP、WCF 等)。


评论中的后续问题:

我正在尝试连接 mongodb ,而不是 sql 。是否有必要为此目的拥有 system.data ?

当我尝试这个时,我可以MongoDB.Bson.dll自己引用并构建项目,但是一旦我引用MongoDB.Driver.dll了我得到的信息和你一样。

似乎 sql 驱动程序和 mongodb 驱动程序都需要System.Data.dll,您可以在标准的 winforms/wpf 应用程序中直接引用它(但可能不应该),但您不能在 Metro 应用程序中直接引用它。

我想说,System.Data如果你想使用 MongoDB,就必须有权访问。因此,您必须创建一个单独的项目,该项目引用 MongoDB 驱动程序并实际执行与数据库的连接,并通过 WCF 调用或 Web 服务使您的 Metro 应用程序可以访问该项目。您只需要在 Metro 应用程序和数据库之间放置一些东西,因为您无法直接连接到它。

我知道这似乎让事情变得更加复杂,特别是如果你只是想玩玩,但这显然是微软就他们的 Metro 应用程序做出的设计决定。

于 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 回答