【问题标题】:WCF DataService with EF CTP 5 CodeOnly DbContext带有 EF CTP 5 CodeOnly DbContext 的 WCF 数据服务
【发布时间】:2011-02-26 12:06:21
【问题描述】:

我正在尝试在纯代码DbContext 之上构建 WCF 数据服务。但是,一旦我将第一个 DbSet 属性添加到我的 DbContext 中,访问 .svc 时就会出现“请求错误”。

我需要得到这个错误是有这个DbContext

public class JukeboxContext : DbContext
{
    public DbSet<Song> Songs { get; set; }
}

然后基于它做一个基本的WCF DataService,当我运行该服务时就会发生错误。

对我需要做什么有什么想法吗?

【问题讨论】:

  • 您确定您的带有歌曲集的 JukeboxContext 有效吗?由于 EF 本身的问题,请求错误可能只是一般错误。
  • 是的,我很确定。我直接使用它没有问题 - 只有当我访问服务时我才会遇到问题。
  • 我添加了:[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] 以获得更好的异常,它说:
  • 服务器在处理请求时遇到错误。异常消息是“在数据上下文类型“JukeboxContext”上,有一个顶级 IQueryable 属性“Songs”,其元素类型不是实体类型。确保 IQueryable 属性是实体类型或在数据上下文类型上指定 IgnoreProperties 属性以忽略此属性。有关详细信息,请参阅服务器日志。

标签: wcf odata entity-framework-ctp5


【解决方案1】:

原来异常意味着它无法解析哪个字段是主键。 最简单的方法是将其命名为 ID 或 ID - 否则 DataServiceKey 属性将允许您使用复合键

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2011-04-08
    相关资源
    最近更新 更多