c#如何实现执行多次检查的Save方法



通常我必须处理一个保存方法,它必须在保存到数据库之前检查一些事情。

例如,我检查的东西是空属性和依赖于其他属性的值。

我一直在为如何实现这样的事情而挣扎。我问自己的问题是:

  • 我应该使用布尔值作为保存方法的返回值吗?在客户端代码中,如果检查为false,则向最终用户显示一个消息框:"保存失败"。但问题是,我无法向用户显示为什么保存失败。所以我不太喜欢这个。
  • 在我的保存方法,我应该抛出一个异常吗?所以当检查失败时,抛出异常?
  • 什么也不做。当支票失败时,什么都不要做。但我认为这不是一个真正的选择。

我想知道,你如何实现这一点?有某种模式吗?

不需要save方法来验证对象。它应该在Save被调用时有效。因此,如果没有正确指定对象,则可以抛出异常。

至于验证,在。net中有一个内置的框架,叫做DataAnnotations。

不应该返回字符串,但应该抛出异常。你可以创建特定的异常,如EmptyPropertyException, DateOutOfBoundException等,并抛出它们。现在由客户机来捕捉这些异常,以显示正确的错误消息。使用异常更好,因为您可能希望在不同的位置显示略有不同的错误消息,或者可能需要使用本地化的字符串。

Enterprise Library - Validation block提供了非常好的实现。请参阅以下位置的详细信息和易于实现的级别:

http://msdn.microsoft.com/en-us/library/ff953192%28v=PandP.50%29.aspx

这取决于你需要什么,取决于用户需要什么…
基本上你可以返回一个字符串:如果是null或空一切都是好的,相反,这个字符串是错误的。所以你可以显示一个MessageBox或者采取任何你喜欢的动作。
通常我更喜欢在服务器端什么都不做(如果有错误),然后返回错误本身,这样我就可以在客户端采取行动,或者让用户决定做什么。
您甚至可以从服务器返回一个异常,如果有一个错误或null,如果一切正常。

如果你想知道为什么保存失败,使用一个异常,这就是它们存在的原因。

我会使用类似结果状态的东西-一个具有布尔属性的对象,显示操作是否成功,如果发生错误和异常,则向用户发送消息

最新更新