【问题标题】:WCF ria Service, domain service does not show available contextWCF ria 服务,域服务不显示可用上下文
【发布时间】:2012-06-20 12:30:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: wcf entity ria


    【解决方案1】:

    如果您正在运行 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 的模型。

    【讨论】:

    • 太好了,我花了很多时间寻找解决方案谢谢
    【解决方案2】:

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

    <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" />
    

    【讨论】:

      【解决方案3】:

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

      Install-Package RIAServices.EntityFramework
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 2011-04-22
        • 2012-01-14
        • 2011-03-26
        • 1970-01-01
        相关资源
        最近更新 更多