我正在构建一个基本的CRUD库,预计将在本地(添加引用)和WCF(添加服务引用)环境中使用。
对于CRUD设置中具有更复杂业务规则的创建、更新和删除部分,哪种是最好的返回类型?
我希望能够尽量减少网络通信次数,但同时也要向客户端提供有意义的信息,以便在操作未通过业务逻辑但在技术上有效时(因此不是异常情况)进行处理。
以Person类的CRUD为例,该类具有以下字段:FirstName、MiddleName、LastName和Date of Birth。其中,First、Last和DOB是必填项,而Middle不是。
我应该如何将业务逻辑失败的信息传达回客户端?例如,“您必须为FirstName指定一个值。”
- 这是否应该抛出异常?(感觉不像是异常情况,所以我认为不是,但我可能错了。)
- 应该使用void和“out”参数吗?如果是,它应该是什么类型?
- 应该使用对象返回类型并在其中放置有关发生情况的数据吗?
- 我完全忽略了其他选项吗?