我正在尝试使用 POCO 数据模型手动构建 WCF 数据服务,但我无法弄清楚如何正确公开enum
值。假设一个简单的模型,如:
public class Order
{
public int ID {get; set;}
public string Description {get; set;}
public OrderStatus Status {get; set;}
}
public enum OrderStatus
{
New,
InProcess,
Complete
}
您如何OrderStatus
通过 OData WCF 数据服务公开属性中的有价值信息?
如果您什么都不做,数据服务会生成运行时错误(枚举是无效属性)。我看到的至少解决错误的唯一答案是将enum
属性标记为已忽略,例如:
[System.Data.Services.IgnoreProperties("Status")]
public class Order ...
这可行,但它迫使您从服务层“省略”有价值的信息。在 WCF 数据服务中使用枚举值是否还有其他选项?
编辑:请注意这是WCF 数据服务(又名 Astoria)。这不是原始的 WCF 服务,在这种情况下,答案会更清楚。