我们在项目中使用自定义类型来表示标识符。它附加了 TypeConvertor,并且总是有助于序列化。

我尝试使用 WCF 数据服务来公开我们系统中的一些数据,但遇到了问题。即使我用 [DataServiceKey("Id")] 属性装饰它,Astoria 框架也不将类识别为实体。如果我将属性类型更改为 Guid - 它完全有效:(。

如何教 WCF 数据服务理解这个简单的类?

有帮助吗?

解决方案

经过一些研究和大量的反射器工作后,我发现这是不可能的。

WCF 数据服务具有巨大的外部元数据支持,详细描述如下: 亚历克斯·詹姆斯 在非常好的系列中 帖子.

但是,禁止创建原始数据类型,并且实体的关键属性应该是原始类型。此外,没有可用于提供从字符串类型到字符串类型的运行时转换的预执行和后执行挂钩。

这种情况以及 NHibernate 对 LINQ 的有限支持使得 Astoria 现在对我来说几乎无法使用。女巫很伤心。

其他提示

只要类有一个属性Id DataService的应该正常序列化。你甚至都不需要的属性,如果属性名为ID。你看到我做的这里的例子。此外,你会发现OData的相关文章对 http://www.Odataprimer.com 的完整列表。这些将帮助也许有。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top