DataAnnotations应用于自动生成实体框架的简单方法

大家都知道使用实体这些自动生成的代码是无法直接使用数据标识的,因为每次刷新数据库改动的时候,就会导致在框架类上添加的标识丢失的问题,这个问题困扰了我很久.话不多说,直接上代码.

 

 

代码
    
//假设下面的类是由实体框架生成
public partial class Kids
    {
        
public string writeKidsProperty()
        {
            
//return string.Format("this is Kids: {0}|{1}", this.Kid_Age, this.Kid_Name);
        }

        
public string Kid_Name { getset; }
        
public int  Kid_Age { getset; }
    }

 

 

 

代码
//通过伙伴类和sealed封闭特性,自动把后来添加的特性附加到最原始的kids类中的属性去.  
 [MetadataType(typeof(Kids.Metadata))]
    
public partial class Kids
    {

        
private sealed class Metadata
        {

            [Required]
            
public string Kid_Name { getset; }

            [Required]
            
public int Kid_Age { getset; }

        }
    }

 

 

生成Kids对象的时候,Kids的属性就有相关的[Required]特性了...

目前这个方法虽然通过了验证,但是,如果你通过反射获取Kids.Kid_Name的特性的时候,是无法获取[Required]特性的,这个一直让我百思不得其解,如果有此经验的朋友,麻烦告诉我方法.谢谢.

posted @ 2009-12-07 10:10  gxpotato  阅读(462)  评论(0)    收藏  举报