當獲取一個類型(class)的全部屬性時,想排除指定屬性,該如何操做?app
好比:EF中一個實體類型UserEntity,經過反射獲取這個類的屬性時,想排除這個爲映射的字段IDspa
使用如下方法便可!code
PropertyInfo[] props =entity.GetType().GetProperties().Where(v => v.GetCustomAttributes(typeof(NotMappedAttribute), true).Length == 0).ToArray();//排除未映射的字段
//更優雅的方法 PropertyInfo[] props = entity.GetType().GetProperties().Where(pi => !Attribute.IsDefined(pi, typeof(NotMappedAttribute))).ToArray();//排除未映射字段
參考:http://stackoverflow.com/questions/2051834/exclude-property-from-gettype-getpropertiesblog