【问题标题】:WCF Ria Services Wizard not working with CodeFirstWCF Ria 服务向导不适用于 CodeFirst
【发布时间】:2012-10-11 15:43:06
【问题描述】:

当使用 EF Code First 时,VS 2012 中的 WCF RIA 服务向导(在添加新的 DomainService 时运行)似乎无法识别项目中定义的 DbContexts(它只识别 ObjectContext)。

这意味着在 VS2012 中添加新项目并选择添加 DomainServiceClass 时,向导无法检测到可用的上下文类 * 组合列表为空 *

请看附图

知道这里会发生什么吗? 谢谢, -Sumit

【问题讨论】:

标签: entity-framework ef-code-first wcf-ria-services code-first domain-service-class


【解决方案1】:

这是 Visual Studio 2012、WCF RIA 服务和实体框架的一个已知问题,导致创建新域服务的向导不知道 DbContext 类型。

简单的解决方案是继续使用 Visual Studio 2010 创建实体模型。尽管使用 RIAServices.EntityFramework NuGet 包不起作用,因为它不支持当前版本的实体框架。

另一种解决方案是将 Context 的类型从 DbContext 更改为 ObjectContext

还有一个KB article 用于该特定场景。

更新: 发布了对 WCF Ria 服务的更新以支持 EF 5 和 DbContext 的使用。更多信息可以找到here

【讨论】:

  • 知识库文章链接对我有用,但阅读更多行(第一个链接)已损坏
  • @MarioThanks' 将更新链接。还更新了 wcf ria 服务以解决所描述的问题。我会尽快用所有相关数据更新我的问题
【解决方案2】:

我认为由于 WCF ria 早于 EF 5,因此该向导找不到您的类。尝试将程序集绑定重定向到

<runtime>
    <legacyUnhandledExceptionPolicy enabled="1" />
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
...

让我们知道它是否有效

【讨论】:

    【解决方案3】:

    现在可以通过 WCF RIA 服务 4.2 版实现。

    如果您创建 WCF RIA 项目并收到提示选择 Windows Phone 版本,这是一个报告的问题,您需要删除 Windows Phone 8.0 和 7.1 SDK。

    如果您遇到与项目模板有关的错误,请在您应该已经安装的 WCF RIA 1.0 SP2 上执行修复。

    【讨论】:

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