我目前正在寻求设计一些 WCF 服务,并希望获得社区对处理操作/数据合同的最佳方式的意见。
我有 2 个基本操作合同,第一个创建报价,第二个在报价中添加项目(并在幕后计算总数)。
第一个接收客户信息和商店信息并返回报价。
第二个接受报价和项目对象,计算总数并返回项目的报价。
我的问题是关于如何在这种情况下设计数据合约?
对于CreateQuote,应该传入一个带有客户属性和商店属性集的报价对象,还是应该有某种包含客户和商店对象但没有传入报价对象的 QuoteRequest 对象?
对于AddQuoteItem,是否应该使用包含 Quote 对象的必需属性集传入 QuoteItem 对象,或者是否应该存在具有 Quote 对象和 item 对象(没有关系)的 QuoteItemRequest 对象,然后使用 QuoteItem 对象重新计算 Quote回来?
换句话说,它们应该看起来像这样吗?
Quote CreateQuote(Quote quote);
Quote AddQuoteItem(QuoteItem quoteItem);
或者他们应该看起来像这样?
Quote CreateQuote(QuoteRequest quoteRequest);
Quote AddQuoteItem(QuoteItemRequest quoteItemRequest);