【问题标题】:WebAPI ODATA without Entity Framework没有实体框架的 WebAPI ODATA
【发布时间】:2013-09-02 01:01:47
【问题描述】:

在 Web Api 控制器中考虑以下方法:

[Queryable(AllowedQueryOptions= AllowedQueryOptions.All)]
public override IQueryable<Mandate> Get()
{
        return new List<Mandate>() { new Mandate() { 
            Id = 1, 
            PolicyNumber = "350000000",
            OpenPositions = new List<OpenPosition>(){ 
                new OpenPosition(){ Id = 1, Amount =2300 },
                new OpenPosition(){ Id = 2, Amount =2100 }
            }},
            new Mandate() { 
                Id = 2, 
                PolicyNumber = "240000000" ,
                OpenPositions = new List<OpenPosition>(){ 
                new OpenPosition(){ Id = 3, Amount =2500 },
                new OpenPosition(){ Id = 2, Amount =2100 }
            }

            } }.AsQueryable<Mandate>();
    }

这里的列表是手动构建的,如果我浏览到以下网址:

http://localhost:52446/odata/Mandates?$filter=Id eq 1 它从列表中返回正确的项目。

现在显然列表更可能是一个数据库结构。将使用一些 ORM 检索数据并返回到 Web API 服务。

我不使用实体框架(因为遗留系统我不能)。

在这种情况下我将如何使用 Web API?我将如何翻译 url 参数,以便负责数据访问的层应用过滤器?

【问题讨论】:

  • 如果您的数据库没有 LINQ 提供程序,您需要翻译 ODataQueryOptions。从这篇博文开始:blogs.msdn.com/b/webdev/archive/2013/02/25/…
  • 知道了。您通过您的 LINQ 提供程序为我指明了正确的方向。我发现我可以使用我们正在使用的 ORM (OpenAccess) 轻松做到这一点。更多信息在这里:documentation.telerik.com/openaccess-orm/developers-guide/…
  • @Sam 你能发表你的评论作为答案吗?否则,即使问题已解决,问题似乎也很活跃。
  • 当然,我现在就这样做。

标签: asp.net-web-api odata


【解决方案1】:

知道了。您通过您的 LINQ 提供程序为我指明了正确的方向。我发现我可以使用我们正在使用的 ORM (OpenAccess) 轻松做到这一点。更多信息在这里:http://docs.telerik.com/data-access/developers-guide/using-web-services/asp.net-web-api/developer-guide-wcfservices-web-api-expose-oacontext

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 2014-12-11
    • 2012-11-07
    • 1970-01-01
    • 2016-01-03
    • 2016-05-19
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多