我喜欢 Rails,所以我被Rob Conery 的 Massive ORM所吸引,因为它......嗯,非常糟糕。
我的问题是,您究竟应该如何使用 Massive 进行验证?在 Rails 中,您可以使用简单的“validates”关键字进行内联验证和/或引用要调用的方法...以及定义何时进行此类验证的能力(例如,仅用于创建、保存后等)。 .)。
Massive 是否提供此类受 Rails 启发的验证?如果是这样,推荐的方法是什么?
非常感谢-wg
我喜欢 Rails,所以我被Rob Conery 的 Massive ORM所吸引,因为它......嗯,非常糟糕。
我的问题是,您究竟应该如何使用 Massive 进行验证?在 Rails 中,您可以使用简单的“validates”关键字进行内联验证和/或引用要调用的方法...以及定义何时进行此类验证的能力(例如,仅用于创建、保存后等)。 .)。
Massive 是否提供此类受 Rails 启发的验证?如果是这样,推荐的方法是什么?
非常感谢-wg
我今天也在想同样的事情,我仍然没有一个令人满意的答案,但我确实找到了最近被推送到 Github 并使用 Massive 进行数据访问的 Tekpub MVC 3 系列的示例代码 -
https://github.com/tekpub/mvc3
此类包括针对视图模型的一些 DataAnnotation 验证,据我所知,没有一个“域”类包含任何验证。
对于 Asp.net MVC,最推荐的方法是使用 DataAnnotations 或 FluentValidations 进行验证。如果你只是用谷歌搜索这些术语,就会有大量的知识。
我们 Seesharpies 不喜欢针对数据库模型进行验证,因此我们可以清晰地分离关注点。验证数据库模型并不是“错误的”,但由于静态和编译语言的僵化,其他替代方法没有多大意义。
我不会对 Massive 进行验证。对于我的域模型,我有使用 DataAnnotations 的“命令”DTO。我的域对象对它们进行验证,然后我使用“域事件”模式将更改发布到我的聚合中。
这是我将使用大规模的地方 - 收听我的域的订阅者将处理引发的事件 DTO,并使用它们通过大规模更新数据库。然后我的视图模型将使用海量查询数据库。
我一直在使用 EF 4.1,但我厌倦了映射命令 -> 事件 -> 视图模型/dto。我将使用大量,因此我不必再定义视图模型/dto。
根据 GitHub 上的自述文件,验证最近已添加到 Massive。
进行验证与使用 EF 进行验证没有什么不同。这是对上述答案的评论。
如果您熟悉 DataAnnotations,那么您就知道如何进行验证。假设您有视图模型,然后将注释添加到它们。在您的控制器中,您正在使用进行验证的视图模型。验证后,您会将这些传递给您的数据层,这可能是大量的或 ef 或其他。
需要明确的是,您不是在验证您正在验证视图模型的实体。希望这是有道理的!我自己也看不懂哈哈哈。