这是我的设置: MVC应用程序 使用Enitity Framework Code First的具有数据访问层的域模型 Silverlight应用程序(显示在MVC应用程序中)
我正在使用RIA服务使Silverlight应用程序与数据库进行交互。
Ria服务仅支持截至目前的实体框架4.1。目前的版本是4.3。由于Silverlight应用程序的Ria服务,因此无法获得EF的新功能(例如迁移和希望将来支持枚举)似乎是浪费。
我的问题是:
答案 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)