如何向我的 POCO(template) 类添加验证 [英] How to add validation to my POCO(template) classes

查看:28
本文介绍了如何向我的 POCO(template) 类添加验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我使用了 this 教程来生成我将在整个应用程序中使用的 poco 类.. 问题是我不应该修改生成的 cs 文件,因为它们会自动重新生成......我如何添加像 [Required] 之类的属性??请帮忙

So I used this tutorial to generate my poco classes which I am to use throughout my aplication.. the problem is that Im not supposed to modify the generated cs files cause they get autoregenerated... How do I add attributes like [Required] and stuff like that?? please help

推荐答案

你不能直接添加(除非你修改 T4 模板为你创建它们)但你可以尝试使用 ASP.NET 动态数据中引入的技巧.所有 POCO 类都定义为部分类.所以让我们定义你的部分:

You can't add it directly (unless you modify T4 template to create them for you) but you can try to use trick introduced in ASP.NET dynamic data. All POCO classes are defined as partial. So lets define your partial part:

using System.ComponentModel.DataAnnotations;

[MetadataType(typeof(MyClassMetadata))]
public partial class MyClass
{
  private class MyClassMetadata
  {
     [Required]
     public object Id;

     [Required]
     [StringLength(100)]
     public object Name;
  }
}

元数据类是只保存元数据的特殊类型——它从未被使用过.字段名称必须与实际类中对应的字段名称相同(字段类型无关紧要,因此您可以使用object).

Metadata class is special type to hold only metadata - it is never used. Name of fields must be same as corresponding fields in real class (field types doesn't matter so you can use object).

无论如何,在 ASP.NET MVC 中,您应该为每个视图使用专门的视图模型并传递您需要的数据,以便验证属性将放置在视图模型类中.

Anyway in ASP.NET MVC you should use specialized View model for each view and pass data you need so the validation attributes will be placed in view model class.

这篇关于如何向我的 POCO(template) 类添加验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆