在没有实体框架的情况下创建Odata Web API应用程序

时间:2015-06-10 00:25:25

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

我正在寻找使用WebApi的示例Odata应用程序,但不使用EF。我的要求是在控制器内部实现一些动作方法(从ODataController派生),返回可以查询的复杂对象。这些操作方法也应该能够采用多个参数。返回的数据是从多个数据源中提取的,因此使用实体框架不是一种选择。 我想实现这样的方法:

public List RetrieveCustomersByFilter(string name,string lastName,CustomerTypeEnum){...业务逻辑在这里......}

我在网上做了很多研究,但我仍然无法找到具体的例子。其中大多数都显示了不接受任何参数(或id / key)的简单方法,并返回标准对象列表。

任何人都可以提供样本或指向一个显示如何进行此操作的链接吗?

由于

2 个答案:

答案 0 :(得分:0)

我猜你需要使用敏捷开发。 首先创建一个模型类。

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;
       }
 }

我希望它会帮助你

答案 1 :(得分:0)

检查这个有最新的Web API 2和ODATA样本的所有步骤 ODATA v4 sample with asp.net web api 2