13

EntityFramework 是否可用于 Windows 8 应用商店应用?

我正在使用适用于 Windows 8 的 Visual Studio 2012 Express。我开始怀疑,因为我无法让它工作。

我从 NuGet 安装了实体框架包我将 System.Data.Entity 和 System.Data.Design 添加到项目中

但无论我做什么,都无法识别 DbContext ......

有任何想法吗?

编辑:

EntityFramework 不适用于 Windows 应用商店应用。我不明白微软在这方面的立场,他们很烂。

另一种解决方案是使用 SQLite,但它不是 ORM。那么有什么意义呢?

4

4 回答 4

8

据我所知,Windows 8 应用商店应用程序以 WinRT(Windows 运行时)为目标。

出于这个原因,因为可以使用 C# 来定位 WinRT,并且 .NET Framework 中的许多类在 WinRT 中具有匹配项,所以大多数不使用非常特定的库的可用代码库也可以在 Windows 8 应用商店应用程序上运行。

WinRT 中有很多东西不可用。例如,Entity Framework 构建在 ADO.NET 之上,而这在 WinRT 上不可用。

Visual Studio足够聪明,可以隐藏 WinRT 上不可用的类和组件,这就是为什么不能在 Windows 8 应用商店应用项目中使用与实体框架相关的类的原因。

为了使用实体框架,您需要创建一个 RESTful Web API(例如使用 ASP.NET Web API)并通过网络异步访问数据层。

否则,您将需要使用本地数据库存储,如 SQLite 或 XML。

于 2013-03-11T10:28:42.497 回答
2

Entity Framework 不适用于 Windows 8 应用商店应用。这是因为 Windows 存储应用程序在沙箱中运行,无法使用普通数据库。您可以为此使用 SQLite 或将 XML / JSON 作为源,您可以在应用程序的首次启动时将其部署在应用程序的独立存储中。

于 2013-03-11T10:12:12.513 回答
2

不,它不可用。你可以使用 SQLite,这个HowTo对我很有帮助。效果很好!

于 2013-03-11T10:21:41.517 回答
1

郑重声明:答案是否定的,转机是创建 Web 服务或使用云服务。SqlLite 适用于存储本地(单用户)信息,但仅此而已。

关于这个问题,不是全部,而是大多数与数据库的连接都是通过套接字连接完成的。所以它可以连接到某个数据库并仍然将应用程序保存在沙箱中。但是,MS 的意图很明确:云或萧条。所以 MS 说最好连接到 Web 服务(另一个套接字连接),它效率低下(并且有风险),而不是使用直接连接。

Windows 应用商店应用程序简直是次要的。

为了增加对伤害的侮辱,MS希望从我们的软件中减少一些收入。

我真的很想喜欢 WinRT(现在是 UWP),但这是不可能的。在这 3 年中,情况并没有发生任何变化。

于 2015-10-29T21:51:29.210 回答