WCF ria服务,域服务不显示可用的上下文

时间:2012-06-20 12:30:42

标签: wcf entity ria

我是WCF RIA开发的新手。我创建了一个支持WCF ria的silverlight 4应用程序。然后我基于本地数据库文件创建了ADO.Net实体数据模型。现在,当我要创建一个Domain服务类时,“可用上下文类”下面的下拉列表是空的,并且它不显示数据源中表的名称。

我错过了这里的任何步骤,或者是否安装不正确。

我正在使用VS 2010& Sql server Express 2008。

3 个答案:

答案 0 :(得分:7)

如果您正在运行VS2012,请阅读http://support.microsoft.com/kb/2745294这对我有用。

这里的信息摘要是:

使用Visual Studio 2012,Entity Framework现在默认创建基于“DbContext”的上下文类,但WCF RIA Services不支持基于“DbContext”的上下文类。 为了将您的Entity Framework模型与WCF RIA Services一起使用,您必须将其转换为基于“ObjectContext”的模型。这可以使用以下步骤完成:

  1. 在设计器中打开您的实体模型,将“代码生成策略”从“无”更改为“默认”

  2. 删除与模型

  3. 相邻的两个“.tt”文件
  4. 重建项目

  5. 执行这些步骤后,您将能够在“可用上下文类”列表中选择实体模型的上下文类。此过程的副作用是您现在已将实体模型从基于Entity Framework DbContext的模型转换为基于ObjectContext的模型。

答案 1 :(得分:0)

检查您的连接字符串是否缺少元数据资源文件引用。连接字符串应该是这样的:

<add name="conString" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=DBName;persist security info=True;user id=username;password=123456;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

答案 2 :(得分:0)

如果您使用代码优先设计,则需要添加RIAServices.EntityFramework以添加对EntityFramework的支持&gt; 4.2。这可以通过以下方式完成:

Install-Package RIAServices.EntityFramework