验证断开连接的 POCO

发布于 2024-08-23 17:56:12 字数 189 浏览 7 评论 0原文

在我的 ASP.NET 应用程序中,我有数据层、业务层和 UI 层的单独项目。

我的业务层由使用 DataAnnotations 进行声明性验证的普通对象组成。

问题是,当谈到保存它们时,我不确定如何处理验证,因为它们没有直接绑定到任何数据上下文,而是映射到单独的数据层对象。

有没有办法触发对这些类型的对象的验证?

In my ASP.NET application I have separate projects for the Data, Business and UI layers.

My business layer is composed of plain objects with declarative validation, using DataAnnotations.

Problem is, when it comes to save them, I'm not sure how to process the validation, since they're not bound directly to any data context, but rather, are mapped to separate data-layer objects.

Is there a way to trigger validation on these kinds of objects?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏末的微笑 2024-08-30 17:56:12

在 StackOverflow 上的这篇文章中(间接)找到了答案。 (感谢 Atwood 和 Spolsky!)

结果您必须调用 Validator 类。

因此,我向 POCO 添加了一个 Validate() 方法:

public void Validate()
{
    Validator.ValidateObject(this, new ValidationContext(this, null, null));
}

我还必须将 ComponentModel.DataAnnotations DLL 的 .NET 3.5 版本替换为更新的 .NET 4.0 版本,其中包括 ValidationContext 类等。

Found the answer (indirectly) on StackOverflow, on this post. (Thanks Atwood & Spolsky!)

Turns out you have to call the Validator class.

So I added a Validate() method to my POCO:

public void Validate()
{
    Validator.ValidateObject(this, new ValidationContext(this, null, null));
}

I also had to swap the .NET 3.5 version of my ComponentModel.DataAnnotations DLL for the updated .NET 4.0 version, which includes the ValidationContext class, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文