通常我必须处理一个save方法,在保存到数据库之前必须检查一些事情。
例如,我检查的内容是空属性,以及取决于其他属性的值。
我一直在努力实现这样的事情。我问自己的问题是:
我在想,你是如何实现这个的?有种模式吗?
答案 0 :(得分:3)
imho不能使用save方法来验证对象。它在调用Save时应该有效。因此,如果没有正确指定对象,则抛出异常是可以的。
至于验证,.NET中内置了一个名为DataAnnotations的框架。使用它可以在所有图层中更轻松地进行验证。
答案 1 :(得分:1)
您不应该返回字符串,但应该抛出异常。您可以创建特定的异常,如EmptyPropertyException,DateOutOfBoundException等,然后抛出它们。现在由客户端来捕获这些异常以显示正确的错误消息。使用异常更好,因为您可能希望在不同位置显示略有不同的错误消息,或者可能需要使用本地化字符串。
答案 2 :(得分:1)
企业库 - 验证块提供了非常好的实现。请在以下位置查看详细程度和易于实施:
http://msdn.microsoft.com/en-us/library/ff953192%28v=PandP.50%29.aspx
答案 3 :(得分:0)
它取决于您的需求和用户需求...
基本上你可以返回一个字符串:如果为null或为空,一切正常,相反,这个字符串就是错误。因此,您可以显示MessageBox或采取您喜欢的任何操作
通常我更喜欢不做任何服务器端(如果有错误)并返回错误本身,所以客户端我可以采取行动或让用户决定做什么。
如果出现错误,您甚至可以从服务器返回异常,如果一切正常,您甚至可以返回null。
答案 4 :(得分:0)
如果你想知道保存失败的原因,请使用他们所在的例外。
答案 5 :(得分:0)
我会使用类似结果状态的东西 - 一个具有布尔属性的对象,显示操作是否成功,如果发生某些错误则发生用户消息,以及发生异常。