【发布时间】:2014-09-14 17:31:03
【问题描述】:
我需要在 OData Web API 服务的事务中封装业务逻辑片段。其中一些片段需要接受一个或多个实体。
示例用例可能是 StockProduct,它可能接受 Product 实体和 Location 实体。它将创建产品并更新位置的库存记录。
我采用的方法是创建一个接受这些实体的未绑定 OData 操作,以便可以在单个事务中对这两个实体进行操作。不幸的是,Entities 既不能用作 ODataActionParameter,也不能作为类的一部分并用作复杂参数。
我可以想到两种解决方法:
创建一个不是实体的 DTO 类,它是我的每个镜像类的镜像,并在我的操作中从 DTO 转换为模型。这里的问题是我已经为每个模型都有一个 DTO,例如。 Product.cs 和 ProductDTO.cs 并不想创建第三类。 (目前,ProductDTO.cs 用于 Posts、Puts、Patches 和 Deletes,Product.cs 用于 Gets)。
放弃 OData 操作并创建一个简单的端点来接受我喜欢的任何内容。我不想走第二条路线,因为我想专门使用 OData。
有什么想法或建议吗?
【问题讨论】: