我是WCF RIA开发的新手。我创建了一个支持WCF ria的silverlight 4应用程序。然后我基于本地数据库文件创建了ADO.Net实体数据模型。现在,当我要创建一个Domain服务类时,“可用上下文类”下面的下拉列表是空的,并且它不显示数据源中表的名称。
我错过了这里的任何步骤,或者是否安装不正确。
我正在使用VS 2010& Sql server Express 2008。
答案 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”的模型。这可以使用以下步骤完成:
在设计器中打开您的实体模型,将“代码生成策略”从“无”更改为“默认”
删除与模型
重建项目
执行这些步骤后,您将能够在“可用上下文类”列表中选择实体模型的上下文类。此过程的副作用是您现在已将实体模型从基于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="data source=.;initial catalog=DBName;persist security info=True;user id=username;password=123456;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
答案 2 :(得分:0)
如果您使用代码优先设计,则需要添加RIAServices.EntityFramework以添加对EntityFramework的支持&gt; 4.2。这可以通过以下方式完成:
Install-Package RIAServices.EntityFramework