ASP.NET WebAPI OData和不同的底层模型

时间:2014-08-08 17:27:53

标签: c# entity-framework odata asp.net-web-api2

我正在为现有项目开发新的API集,它具有相当复杂的数据库模型。因此我决定REST API模型与数据库模型不同。

我想使用OData,因为它提供了很好的查询支持。但是,当我尝试在两个模型定义之间进行转换时,我陷入了困境。

基本上我需要做这样的事情(MagicConvert方法是我缺少的部分):

[EnableQuery]
public IQueryable<WebApiData> Get(ODataQueryOptions<WebApiData> options)
{
   ODataQueryOptions<Data> convertedOptions = MagicConvert(options);

   var results = convertedOptions.ApplyTo(db.Data);

   return results.Select(res => MagicConvert2(res)).AsQueryable();
}

我当然能够将数据转换为WebApiData并返回。

所以我的问题如下:

这样的事情是可能的(以及怎么做)?

如果不是,这是否意味着OData仅用于(或多或少)直接数据库访问(没有不同的模型)?

0 个答案:

没有答案