我刚刚在 c#/XML 中创建了一个新的 Windows 8 应用程序并下载mongodb C# 驱动程序 http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/并将其引用添加到我的项目中并遵循其余部分tutorial http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-csharp-driver/,但是当我尝试运行我的应用程序时,现在它说
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.
请帮助我提前致谢。
好像system.data
Metro 应用程序不可用。普遍的共识似乎是,您必须创建一个中间“中间”层(使用 WCF 等技术)以允许您的 Metro 应用程序与数据库进行通信。
参考:
- 使用 C# Metro App 从 SQL 检索数据 https://stackoverflow.com/questions/11947078/retrieving-data-from-sql-using-c-sharp-metro-app
- 使 System.Data 可用于 Metro 风格应用程序 http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2759791-make-system-data-available-to-metro-style-apps
- WinRT System.Data - 连接到 SQL https://stackoverflow.com/questions/10193999/winrt-system-data-connect-to-sql
尽管这些链接的标题中有 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 驱动程序并实际执行与数据库的连接,并使您的 Metro 应用程序可以通过 WCF 调用或 Web 服务访问该项目。您只需要在 Metro 应用程序和数据库之间放置一些东西,因为您无法直接连接到它。
我知道这似乎让事情变得更加复杂,特别是如果你只是想玩玩的话,但这显然是微软针对他们的地铁应用程序做出的设计决定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)