WebAPI中的OData没有像Entity Framework这样的东西

Mau*_*out 7 c# sql translate odata asp.net-web-api

我正在构建一个从遗留系统获取数据的WebAPI,因此我没有可用的实体框架.现在我想使用OData功能,但如果我有像Entity Framework这样的想法,它就无法工作.但在我的研究中,我发现我可以像这样获取ODataQueryOptions.

    public IQueryable<Vehicle> Get(ODataQueryOptions opts)
    {
        var dal = new DataAccessVehicles();

        return (dal.GetVehicles(opts));                        
    }
Run Code Online (Sandbox Code Playgroud)

在我的DAL中,我可以将OData查询转换为实际的SQL查询.但这似乎做了很多工作.

我的问题是,有没有另一种方法或更好的方法来实现这一点而不使用实体框架.任何提示/帮助将不胜感激.

Tro*_*son 0

要么在启动时启用查询支持以允许 OData 查询所有操作,要么用[Queryable]. 然后确保您的操作返回,您可以在现有集合上IQueryable使用该方法。.AsQueryable()

例子:

[Queryable]
public IQueryable<Product> Get() 
{
    return products.AsQueryable();
}
Run Code Online (Sandbox Code Playgroud)

看看这篇文章:

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options