Entity framework 具有实体框架的wcf数据服务

Entity framework 具有实体框架的wcf数据服务,entity-framework,wcf-data-services,Entity Framework,Wcf Data Services,我正在尝试使用实体框架创建WCF数据服务项目。(我对两者都是新手) 我使用DB创建了实体。 现在,我创建了服务操作,它返回IQueryable 我的问题是 我不想返回实体中的整组列。我不能从实体中删除它们,因为它不是空的。如何避免这些 我有几个FK列,我需要表的其他列详细信息。如何包含其他表中的列 为什么不能使用从WCF数据服务返回的POCO类 如何设置响应的格式;i、 例如,在响应中添加更多的细节,如页码等,更改xml标记,删除一些细节,如“link rel” 我已经尝试了很多事情来实现1和2

我正在尝试使用实体框架创建WCF数据服务项目。(我对两者都是新手)

我使用DB创建了实体。 现在,我创建了服务操作,它返回
IQueryable

我的问题是

  • 我不想返回实体中的整组列。我不能从实体中删除它们,因为它不是空的。如何避免这些

  • 我有几个FK列,我需要表的其他列详细信息。如何包含其他表中的列

  • 为什么不能使用从WCF数据服务返回的POCO类

  • 如何设置响应的格式;i、 例如,在响应中添加更多的细节,如页码等,更改xml标记,删除一些细节,如“link rel”

  • 我已经尝试了很多事情来实现1和2。但最后我意识到,我只能使用实体,因为它是使它的工作

    我不知道4点

    如有任何建议,将不胜感激

    一,。我不想返回实体中的整组列。
    2.我有几个FK列,我需要其他列的详细信息 桌子

    为此,您应该定义一个新类,该类与您需要的/希望客户机看到的内容相匹配。这可以是一个直接的POCO类-没有特殊要求。为每个实体组装该类,去掉不需要的列,并将FK列的一个或两个额外字段抓取到该新类中。返回一个
    IQueryable
    ,而不是直接返回实体类

    为了避免仅仅为了填充新类的属性而使用大量的左-右赋值语句,您应该看看哪些语句可以使复制彼此非常相似的类变得非常容易(例如,缺少或添加一些属性)

    四,。如何设置响应的格式;i、 例如,在报告中再添加一些细节 如页码等响应,更改xml标记,删除一些细节 比如“链接关系”

    这是不可能的——OData协议非常严格地定义了消息中的内容、有哪些链接等。如果你不能接受这些内容,你就必须推出自己的WCF REST服务,并完全放弃WCF数据服务

    如果您想更彻底地调查该路线,请查看


    更新:该链接似乎已失效-请改用。

    确保您有
    Id
    属性,或者指定
    [Key]
    [DataServiceKey(“您的自定义Id\u属性”)

    对我来说,这解决了问题

    我正在按照你对第1点和第2点的建议做,我得到了错误“服务器在处理请求时遇到错误。异常消息为“在数据上下文类型“GamesContext”上”,有一个顶级IQueryable属性“Games”,其元素类型不是实体类型。确保IQueryable属性为实体类型,或指定数据上下文类型上的IgnoreProperties属性以忽略此属性。“。有关详细信息,请参阅服务器日志。异常堆栈跟踪是:“如下:@Priya10:似乎是一个-希望这可能对您有所帮助!@marc_s该链接似乎已失效,我明白了error@Maslow:是的,链接似乎死了-我添加了一个新链接,请看那里