
ASP.NET Core OData 实践
文章平均质量分 96
breaksoftware
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ASP.NET Core OData 实践——Lesson2增删改查Entity(C#)
OData中的Entity是数据模型的核心单元,代表可唯一标识的业务对象(如客户、订单)。它具有以下特点: 唯一标识性 - 每个实体都有主键 属性集合 - 包含描述业务特征的属性 类型继承 - 支持多态(如Circle继承Shape) 标准操作 - 支持CRUD操作(GET/PUT/PATCH/DDELETE) 灵活路由 - 支持基类/派生类的多种查询方式(/Shapes(1)或/Shapes(1)/Circle) 扩展性 - 通过继承适应不同业务需求 典型实现包含模型设计(如Shape基类与Circle/原创 2025-06-04 00:15:00 · 1001 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson2多态机制(C#)
例如,定义一个基类 Shape(包含 Id 和 Area 属性),其派生类 Circle(新增 Radius 属性)和 Rectangle(新增 Width、Height 属性),三者可共同存储在 Shapes 这个 EntitySet 中。原创 2025-06-03 00:30:00 · 939 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson10基本概念和动态构建(C#)
Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</原创 2025-06-03 00:15:00 · 1743 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson8增删改查单值类型Property(C#)
单值属性(Single-Valued Property)指的是实体中类型为复杂对象但非集合的属性,比如客户的账单地址(BillingAddress)、企业客户的注册地址等。单值属性的操作涵盖了查询、替换、部分更新等多种场景。本文将结合代码示例,讲解如何在 OData 控制器中优雅地处理单值属性,并分析其在数据建模和接口设计中的重要性。原创 2025-06-02 00:15:00 · 769 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson8增删改查原始类型Property(C#)
本文介绍了OData API中原始属性的操作方法。原始属性是OData实体中最基础的数据类型,包含字符串、数字、布尔值等。文章详细列举了支持GET、PUT、DELETE等操作的接口路由模板,包括对基类/派生类实体和单例属性的查询与更新。通过C#代码示例展示了主要模型设计(Address、Customer等类)和控制器实现,其中控制器继承ODataController以获得标准路由、查询参数支持等特性。最后提供了一个包含4个客户实例的数据源示例,演示了原始属性在实际业务中的典型应用场景。原创 2025-05-31 00:30:00 · 984 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson8增删改查集合Property(C#)
本文介绍了OData API设计中集合属性的实现方法。主要内容包括:1) 支持GET、POST、PUT、DELETE等方法的接口路由模板设计;2) 模型设计示例,展示了基类与派生类(Customer/EnterpriseCustomer)的结构;3) 控制器设计要点,通过继承ODataController获得路由、查询参数等支持;4) 提供了数据源示例代码,包含4个客户实例(2个普通客户和2个企业客户)。文章重点说明了如何通过OData规范处理集合类型属性(如ContactPhones列表)和复杂类型属性(原创 2025-05-31 00:15:00 · 892 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson7通过Payload修改Reference(C#)
本文介绍了在ASP.NET Core OData中通过Payload修改Reference的方法。文章对比了两种修改方式:URI中指定Key的方式和Payload传递的方式,并提供了对应的路由模板。主要内容包括模型设计示例(Customer、Employee、Order等实体类)和控制器的关键实现方法TryParseRelatedKey,该方法用于解析Payload中的资源标识符。重点演示了如何通过POST/PUT请求和JSON Payload(包含"@odata.id")来设置导航属性原创 2025-05-30 00:30:00 · 834 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对多Navigation Property(C#)
本文介绍了 OData 协议中的 Reference 机制,该机制专门用于管理实体间的一对一或一对多关系(如员工-企业)。通过标准的 RESTful 操作(GET/POST/PUT/DELETE),客户端可直接操作导航属性而无需修改整个实体。文章以“员工-企业”一对多关系为例,展示了模型设计(包含 Customer、Employee 等类)和 OData 控制器实现,重点说明了 Reference 支持的接口类型(如查询、添加、删除引用),并指出其不支持 PATCH 请求,仅用于管理关系而非属性更新。通过继原创 2025-05-30 00:15:00 · 1303 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对一Navigation Property(C#)
本文介绍了OData协议中的Reference机制,这是一种专门用于管理实体间关系的标准接口。文章以"订单-客户"的一对一关系为例,详细讲解了Reference与普通导航属性的区别:Reference仅操作关系本身(如设置/取消关联),不修改被引用对象的属性。内容涵盖了支持的标准接口(GET/POST/PUT/DELETE)、模型设计(包含派生类ThirdpartyPaymentOrder)以及控制器实现方法,并强调Reference不支持PATCH操作。该机制通过专用路由和元数据支持,原创 2025-05-29 03:15:00 · 981 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson4增删改查Navigation Property(C#)
本文介绍了一个基于ASP.NET Core OData的Web API示例,演示了对员工(Employee)和经理(Manager)实体进行CRUD操作。系统支持多态性、导航属性和批量操作。文章详细阐述了导航属性的概念(单值和集合导航属性),并提供了完整的API接口说明。模型设计部分包含Employee基类(含Id、Name、Supervisor和Peers属性)和Manager子类(增加PersonalAssistant和DirectReports属性)。控制器继承ODataController实现ODa原创 2025-05-28 00:15:00 · 840 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson9绑定和未绑定的Function和Action(C#)
本文基于ASP.NET Core OData v8.x,详解OData服务中Actions与Functions的差异及实现。Functions是幂等的查询操作,用于数据计算(如统计销售额),支持GET请求;Actions是非幂等的命令操作(如订单提交),通过POST修改状态。文章通过Book模型示例,演示了绑定/非绑定Function的实现(如MostRecent()和ReturnAllForKidsBooks()),以及Action的定义规则。关键区别在于:Functions是"只读计算器&qu原创 2025-06-02 00:30:00 · 1938 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson3修改和查询Singleton(C#)
本文介绍了基于ASP.NET Core OData的单例模式Web API实现,主要演示了如何管理全局唯一的公司资源。OData单例代表系统中唯一存在的对象(如公司配置),不支持新增和删除操作。文章详细说明了支持的接口类型(GET/PUT/PATCH),包括基类和派生类的查询与更新方式。通过Company和HoldingCompany的继承模型设计,展示了多态处理能力。控制器继承ODataController获得标准OData功能,使用静态字段保证单例唯一性。文中提供了完整的请求响应示例,包括通过curl测原创 2025-05-27 00:30:00 · 723 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson2查询和局部更新EntitySet(C#)
本文介绍了一个基于 ASP.NET Core OData 的 Web API 示例,演示了如何通过 OData 协议对多态形状(Shape 基类及 Circle、Rectangle 派生类)实现完整的 CRUD 操作。项目采用内存集合存储数据,详细展示了 OData 控制器的设计模式,包括支持基类和派生类实体的增删改查接口规范。摘要还列出了核心路由模板和请求方法,如 GET/POST/PUT/PATCH/DELETE 等标准操作,并说明了多态查询的特殊路径格式。通过 Shape 模型继承体系,体现了 ODa原创 2025-05-27 00:15:00 · 910 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson6使用Action(C#)
本文介绍了一个基于ASP.NET Core OData的Web API示例,重点演示了如何通过OData Action实现批量或单个对象的业务操作(如发放礼品、奖金等)。文章首先概述了OData Action的特点及其支持的6种接口调用方式(包括绑定/非绑定操作)。随后详细说明了模型设计(Employee和Manager类)以及控制器的实现,展示了如何继承ODataController来获得OData标准支持。核心部分通过具体代码示例演示了绑定到实体集的Action实现(批量发放礼品),并提供了对应的cUR原创 2025-05-29 00:15:00 · 865 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson5使用Function(C#)
本文介绍了基于ASP.NET Core OData的Web API示例,演示如何使用Function机制对员工和经理进行业务计算。Function封装了服务端复杂的业务逻辑,支持幂等操作,通过URL传递参数和返回结果。文章详细说明了Function的核心概念、特点、支持的接口类型,并展示了模型设计(Employee和Manager类)及控制器实现。重点讲解了绑定函数的调用方式,包括获取最高绩效评分的具体代码示例,体现了OData在封装业务逻辑、提升API表达力方面的优势。原创 2025-05-28 00:30:00 · 815 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson1-2查询服务文档、模型Meta和Entity数据(C#)
本文介绍了如何使用Postman查询OData服务中的数据。首先说明OData服务会公开服务文档和元数据文档两个资源:服务文档(GET /odata/)列出可用资源及其路径,元数据文档(GET /odata/$metadata)以XML格式详细描述数据结构。接着演示了如何查询Customers实体集数据,包括基本查询、排序($orderby)和筛选($filter)操作。文章还解释了EntityContainer的概念及其在OData服务中的核心作用,帮助理解服务的数据模型组织方式。原创 2025-05-26 03:45:00 · 776 阅读 · 0 评论 -
ASP.NET Core OData 实践——Lesson1-1搭建服务(C#)
本文介绍了使用Visual Studio 2022创建ASP.NET Core空项目并集成OData服务的过程。主要内容包括:1) 创建Lesson1项目并取消HTTPS配置;2) 安装Microsoft.AspNetCore.OData包;3) 创建Customer和Order模型类,定义数据结构和导航属性;4) 编写支持OData查询的CustomersController控制器;5) 配置Program.cs文件,通过ODataConventionModelBuilder注册EntityType和En原创 2025-05-26 03:30:00 · 1032 阅读 · 0 评论