2011-05-18 96 views
0

如果我无法诠释我的课与DataServicesKeyAttribute使WCF数据服务认识我的财产Id的关键(因为它只能识别默认IDClassNameID),还有没有其他的除了编写我自己的IDataServicesMetadataProvider选项吗?WCF数据服务元数据提供商和DataServiceKey

这是非常愚蠢的,微软的部分,考虑的PK默认的资本计划,当你在EDMX模型创建一个实体是Id,不ID ....进一步微软的命名约定指南建议在条款使用IdID的资本化。很蠢...

回答

1

如果你真的不能添加DataServiceKeyAttribute,那么是的,唯一的办法就是实现你自己的提供者。请注意,如果您的WCF数据服务下有一个EF提供程序,那么将从EF本身取得关键属性,而不是取自类的属性。所以这可能意味着你正在尝试做别的事情而不是EF。如果是这种情况,请发布更详细的说明,也许有另一种方式。

+0

我正在使用POCO定制的定制IQueryable提供程序,这是在单独的常见程序集中定义的,我无法在System.Data.Services.Client上添加依赖项。 – Jeff 2011-05-18 15:13:56

+0

如果是这种情况,我会建议完全自定义提供商路线。是的,您必须自己“反思”这些类,但具有构建元数据的能力通常会对IQueryable实现有很大帮助(因为您可以控制类型等)。我认为从长远来看,这是一种更好(更具扩展性)的方法。既然你已经有一半了...... – 2011-05-19 10:03:40