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 应用程序做出的设计决定。