我可以在实体框架4.3中使用RIA服务吗?

时间:2012-02-15 23:06:10

标签: wcf silverlight asp.net-mvc-3 entity-framework wcf-ria-services

这是我的设置: MVC应用程序 使用Enitity Framework Code First的具有数据访问层的域模型 Silverlight应用程序(显示在MVC应用程序中)

我正在使用RIA服务使Silverlight应用程序与数据库进行交互。

Ria服务仅支持截至目前的实体框架4.1。目前的版本是4.3。由于Silverlight应用程序的Ria服务,因此无法获得EF的新功能(例如迁移和希望将来支持枚举)似乎是浪费。

我的问题是:

  1. 首先使用EF代码时依赖Ria服务是否合理(即它们总是会落后于这么多吗?这可能会成为一个问题吗?)
  2. 您是否有其他解决方案,其中Silverlight应用程序不依赖于我使用的ORM版本?

3 个答案:

答案 0 :(得分:4)

RIA Services可以与NHibernate或任何其他ORM或对象/域模型一起使用。只有部分VS Wizards暗示EF和RIA服务之间存在耦合,但您显然不需要使用这些向导,也不存在EF和RIA服务之间的耦合。

问题的答案"我可以在实体框架4.3中使用RIA服务吗?"绝对是的。

OData是RIA服务的替代品,但它有很多限制,并不打算作为直接竞争对手。 WCF也是另一种选择。

答案 1 :(得分:0)

在RIA服务正确支持EF4.3之前获得迁移的解决方法也可以是创建一个仅用于迁移的项目,类似于Visual Studio Ultimate中的数据库项目。

这个项目需要通过“添加为链接”来包含该模型,并且您需要确保它可以在两个项目中进行编译。例如,您可能需要定义一些在RIA-Services中定义的虚拟属性(“包含”将是一个)。

这不是理想的,但在某些情况下可能是最好的选择。

答案 2 :(得分:0)

获取版本锁定的临时解决方法<在RiaServices.EntityFramework NuGet包的4.2中,我使用了NuGet Package Explorer来更改包的元数据并删除了约束。

记住你必须添加local cache as NuGet source

工具 - >选项 - >包管理器 - >套餐来源 - >添加(C:/ Users /%username%/ Appdata / Local / Nuget / Cache)