Silverlight5 + WCF RIA和EF6 - 可能吗?

时间:2014-08-08 12:08:01

标签: entity-framework-6 wcf-ria-services

我正在尝试在我们的silverlight应用程序中将EntityFramework从v4升级到v6。由于我们使用WCF RIA服务,我们必须将其升级到OpenRia(因为属性WCF RIA仅支持EF5)。

但是,每当我尝试在Silverlight应用程序中安装“OpenRiaServices.EntityFramework”时,我都会得到:

无法安装软件包'OpenRiaServices.EntityFramework 4.3.0.0'。您正在尝试将此软件包安装到以“Silverlight,Version = v5.0”为目标的项目中,但该软件包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请与软件包作者联系。

我认为这是因为dll,目标是“.NET Framework”,而Silverlight应用程序的目标是“Silverlight” - 问题是:它有什么办法吗?

第二个问题 - 可能,或者可能与第一个问题无关 - 即使在我安装OpenRia后,我在合并期间也会出现以下错误:

错误206类型'System.ServiceModel.DomainServices.Client.EntityQuery`1'在未引用的程序集中定义。您必须添加对程序集'System.ServiceModel.DomainServices.Client,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'的引用。

当然上面的DLL是旧RIA实现的一部分,并且无法以任何方式引用它?

是否可以将EF6与使用RIA的silverlight应用程序一起使用?

1 个答案:

答案 0 :(得分:2)

我们使用的是EF6 + OpenRia,但不是通过NuGet。所有RIA dll都存储在" Lib"文件夹并手动引用。然后我安装"打开Ria服务工具和模板",有一个VS扩展,而不是NuGet包。

.Ria(Silverlight 5)项目有参考文献:

OpenRiaServices.Data.DomainServices.dll (2.0.5.0)
OpenRiaServices.DomainServices.Client.dll (2.0.5.0) 
OpenRiaServices.DomainServices.Client.Web.dll (2.0.5.0)

.Ria.Web(.NET 4.5类库)项目有参考:

OpenRiaServices.DomainServices.EntityFramework.dll (4.0.0.0)
OpenRiaServices.DomainServices.Hosting.dll (4.0.0.0)
OpenRiaServices.DomainServices.Server.dll (4.0.0.0)

在.Ria项目文件的末尾,我添加了下一个元素:

<Import Project="..\..\..\Libs\Silverlight\OpenRia\CodeGen\OpenRiaServices.Silverlight.CodeGen.targets" Condition="Exists('..\..\..\Libs\Silverlight\OpenRia\CodeGen\OpenRiaServices.Silverlight.CodeGen.targets')" /> 

(您必须为您的RIA .target参考修改此字符串)

通过NuGet安装EF 6.0.2。