在OData中引入自定义属性

时间:2011-06-23 23:33:01

标签: odata

在我的数据库用户表中,我有一个名为DateDeleted的DataTime字段 - 当用户存在时为空,并在用户“被删除”时设置为正确的值。

我想知道是否有办法为User实体引入IsDeleted属性,以便

http://odata/service.svc/Users(1)/IsDeleted

将返回true或false,具体取决于是否设置了DateDeleted

我在谷歌的研究没有得到任何结果,我几乎肯定不可能通过odata实现。我是对的吗?

2 个答案:

答案 0 :(得分:1)

使用内置提供程序,这在WCF DS方面是不可能的。您可能能够以某种方式在EF端执行此操作(将其作为EF实体的属性公开),但我不确定这是否可行。 在WCF DS端,您必须实现自定义提供程序才能执行此操作。不幸的是,这可能是相当多的工作。如果您有兴趣,可以看一下初学者:http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx。 Shawn在上面提到的是自定义提供程序接口上的方法。

答案 1 :(得分:0)

您可以通过实现DataServiceQueryProvider.GetPropertyValue方法指定所需的值。

请在此处找到参考: http://msdn.microsoft.com/en-us/library/system.data.services.providers.idataservicequeryprovider.getpropertyvalue.aspx

该方法采用两个参数:实体对象(用户实例)和资源属性(在本例中为“IsDeleted”)。您可以尝试从实体对象获取“DataDeleted”的属性值,并根据需要返回“IsDeleted”的值。