.net Odata 插件
OData Connected Service
https://marketplace.visualstudio.com/items?itemName=laylaliu.ODataConnectedService#review-details
OData v4 Client Code Generator
https://marketplace.visualstudio.com/items?itemName=bingl.ODatav4ClientCodeGenerator
1.在Byd中建立自定義 OData服務
服務名稱要用英文開頭 不包含特殊字符,不然會報錯,保存
2.設置OData服務內容
工作中心視圖用於設置整體服務的權限,也可以不設置,然后在實體對象中明細設置對象權限
選擇業務對象.並創建對應實體類型
導入功能中,設置功能類型和參數
保存並激活
打開 服務 URL 並保存為 接口配置.XML
測試接口
3.在VS 2015中使用
添加服務引用
地址可以選擇保存的 接口配置.XML 也可以直接使用URL(需要用Byd 用戶登陸)
點確定就可以了
4.在VS 2017中使用
添加鏈接的服務
選擇插件,沒安裝的需要安裝
選擇導出的 接口配置.xml (不支持URL登陸)
5.Codeing
static void Main(string[] args) { var url = "https://my600301.sapbyd.cn/sap/byd/odata/cust/v1/odatacardtest"; odatacardtest odata = new odatacardtest(new Uri(url)) { //認證信息 Credentials = new NetworkCredential("zh3305", "*******") }; //執行查詢 where 會自動轉換成ABAP查詢語句.支持常見查詢語句轉換 Contains StartsWith EndWith == 等等常用語句 var cardRoots = odata.TCardRootCollection.Where(t => t.CarParkName.Contains("2")).ToList(); Console.WriteLine(JsonConvert.SerializeObject(cardRoots)); Console.ReadKey(); } }
//.net Core
static async Task Main(string[] args)
{
var url = "https://my600301.sapbyd.cn/sap/byd/odata/cust/v1/odatacardtest";
odatacardtest odata = new odatacardtest(new Uri(url))
{
//認證信息
Credentials = new NetworkCredential("zh3305", "**********")
};
var query = (DataServiceQuery<TCardRoot>)(from cust in odata.TCardRootCollection
where cust.CarParkName == "2"
select cust);
// 必須改為調用 BeginExecute 和 EndExecute 方法。
query.BeginExecute(ar =>
{
if (ar.AsyncState is DataServiceQuery<TCardRoot> peopleQuery)
{
var people = peopleQuery.EndExecute(ar).ToArray();
foreach (var p in people)
{
Console.WriteLine(p.CarParkName);
}
Console.WriteLine(JsonConvert.SerializeObject(people));
}
}, query);
Console.ReadKey();
}












