1

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

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

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

4

3 回答 3

7

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

这里的信息摘要是:

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

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

  2. 删除与模型相邻的两个“.tt”文件

  3. 重建项目

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

于 2013-01-26T05:07:27.500 回答
0

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

Install-Package RIAServices.EntityFramework
于 2014-03-24T03:43:03.043 回答
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" />
于 2012-06-28T12:20:35.340 回答