在我的数据库用户表中,我有一个名为DateDeleted的DataTime字段 - 当用户存在时为空,并在用户“被删除”时设置为正确的值。
我想知道是否有办法为User实体引入IsDeleted属性,以便
http://odata/service.svc/Users(1)/IsDeleted
将返回true或false,具体取决于是否设置了DateDeleted
我在谷歌的研究没有得到任何结果,我几乎肯定不可能通过odata实现。我是对的吗?
答案 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方法指定所需的值。
该方法采用两个参数:实体对象(用户实例)和资源属性(在本例中为“IsDeleted”)。您可以尝试从实体对象获取“DataDeleted”的属性值,并根据需要返回“IsDeleted”的值。