ASP.Net MVC 學習筆記
OpenData WebAPI簡易的使用方法
MSDN Odata 條件式:https://msdn.microsoft.com/zh-tw/library/gg309461(v=crm.7).aspx
一、 沒有資料來源的作法
開啟MVC專案,在Controller底下建立一個空白的WebApi2 的控制器
然後將程式碼打上
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.OData;
using WebMVCAngularjs.Models;
namespace WebMVCAngularjs.Controllers.Single
{
public class SingleApiController : ApiController
{
/// <summary>
/// ODATA 自己產生的List<string>做為資料來源
/// </summary>
/// <returns>查詢後的結果</returns>
[EnableQuery]
public IQueryable<string> GetStringList()
{
//Add Data
List<string> Myarray = new List<string>();
for (int i = 0; i < 1000; i++)
Myarray.Add(i.ToString());
//Result
IQueryable<string> Result = Myarray.AsQueryable<string>();
if (Result.FirstOrDefault<string>() != null)
return Result;
else
throw new HttpResponseException(HttpStatusCode.Forbidden);
}
}
}
就可以啟動開專案,然後輸入Odata條件式搜尋
$top=500 表示回傳前500筆資料
http://本機位置/api/SingleApi/Getstringlist?$top=500
控制器名稱叫SingleApiController
Getstringlist是[EnableQuery] attribute的呼叫名稱
二、有資料來源的作法 ,繫節Entity Framework Database
將程式碼貼上
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.OData;
using WebMVCAngularjs.Models;
namespace WebMVCAngularjs.Controllers.Single
{
public class SingleApiController : ApiController
{
/// <summary>
/// ODATA 以資料庫裡的AccountTable 這張表的資料做來源
/// </summary>
/// <returns>查詢後的結果</returns>
[EnableQuery]
public IQueryable<AccountTable> GetAccount()
{
IQueryable<AccountTable> products = new BochenLinTestEntities().AccountTable.AsQueryable<AccountTable>();
if (products.FirstOrDefault<AccountTable>() != null)
return products;
else
throw new HttpResponseException(HttpStatusCode.Forbidden);
}
}
}
就可以啟動開專案,然後輸入Odata條件式搜尋
$top=500 表示回傳前500筆資料
http://本機位置/api/SingleApi/GetAccount?$top=1
控制器名稱叫SingleApiController
GetAccount是[EnableQuery] attribute的呼叫名稱