在没有实体框架的情况下创建 Odata Web API 应用程序
Posted
技术标签:
【中文标题】在没有实体框架的情况下创建 Odata Web API 应用程序【英文标题】:Creating Odata Web API application without Entity Framework 【发布时间】:2015-08-25 01:00:28 【问题描述】:我正在寻找一个使用 WebApi 但不使用 EF 的示例 Odata 应用程序。我的要求是在一个控制器(从 ODataController 派生)中实现几个操作方法,这些方法返回可以查询的复杂对象。这些动作方法也应该能够接受多个参数。返回的数据是从多个数据源中提取的,因此不能选择使用实体框架。 我想实现这样的方法:
public List RetrieveCustomersByFilter(string name, string lastName, CustomerTypeEnum) ...业务逻辑在这里...
我在网上做了很多研究,但我仍然找不到具体的例子。它们中的大多数展示了不接受任何参数(或 id/key)并返回标准对象列表的简单方法。
谁能提供一个示例或指向一个链接来说明如何进行此操作?
谢谢
【问题讨论】:
查看tour 了解这里的主题是什么,什么不是主题,kthx @AgentHut,我在here 添加了一些示例代码。希望它可以帮助你。更多功能相关的测试用例可以参考Web API OData存储库。谢谢。 ASP .NET MVC 4 WebApi: Manually handle OData queries 的可能副本 【参考方案1】:查看最新的带有 ODATA 的 Web API 2 示例以及所有步骤 ODATA v4 sample with asp.net web api 2
【讨论】:
【参考方案2】:我猜你需要使用敏捷开发。 首先创建一个模型类。
public class Model
public string ID get; set;
public string name get; set;
然后创建一个dal类,
public class Dal
private Model model = new Model();
public List<Model>getAllRecords()
List<model> list = new List<model>();
.....
.....
list.Add(new Model
ID =.....,
name = ...
);
然后创建一个逻辑类,从dal中获取数据,并使用linq查询数据,还可以过滤想要进入的数据
public class Logic
private DAL dal = new DAL();
public dynamic dataGet(int id, string name)
var a = (from data where dal.getAllRecords()
where data.ID == id && data.name == name
select new
dataid = data.ID
daname = data.name
).ToList();
return a;
希望对你有帮助
【讨论】:
感谢您的回复。我已经设置了这部分(模型+dal)。我需要实现的是一个 OdataController,它有一个调用 dataGet(id,name) 的方法有正确的路由设置。 只需使用 Visual Studio 创建 odata 控制器。将控制器内部的 EF 逻辑更改为您的数据逻辑。您可以在最后使用 AsQuaryable() 返回您的数据。以上是关于在没有实体框架的情况下创建 Odata Web API 应用程序的主要内容,如果未能解决你的问题,请参考以下文章