1、添加 System.ComponentModel.DataAnnotations.dll 的引用
2、
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
3、编写以下 语句
namespace DB.Entity
{
[MetadataType(typeof(StudentsMetadata))]
[DisplayName("学生")]
public partial class Students
{
public class StudentsMetadata
{
[DisplayName("学生ID")]
public object StudentId { get; set; }
[DisplayName("姓名")]
[Required(ErrorMessage = "姓名不可为空。。")]
public object StudentName { get; set; }
[DisplayName("年龄")]
public object Age { get; set; }
[DisplayName("Email")]
[RegularExpression(@"[/w-]+@([/w-]+/.)+[/w-]+", ErrorMessage = "只可输数据")]
public object Email { get; set; }
//[KeyValueCollection("0-男|1-女|2-未知")] //需要自己实现该属性
[DisplayName("性别")]
public object Sex { get; set; }
//[KeyValueCollection("true-已毕业|false-在校")] //需要自己实现该属性
[DisplayName("是否毕业")]
public object Isleft { get; set; }
[DisplayName("所属班级")]
public object Classes { get; set; }
[ScaffoldColumn(false)]
//[Filter(Enabled = false)]
//[ColumnOrder(1)]
public object Teachers { get; set; }
}
}
}
4、建立 DynamicDataEntityWeb ,使用该Context ,(linq to sql 可以以同样方式实现)效果如下
使用前 的列表和编辑页面
使用MetaData后的效果
注意:字段名已经按照MetaData 显示为中文,另外,有部分字段会被隐藏,或者在编辑数据的时候,会有数据格式验证 等等,就看你MetaData怎么写了。默认提供的Attribute是不够用的,你完全可以实现自己的Attribute