我使用实体框架6 DBContext, Database First.
假设我有一个对象,myobj1来自一个实体。
是否有办法循环遍历这个对象的所有属性并获得它们每个属性的当前值?
当然,我需要一个通用的代码,应该工作的任何对象从任何实体。
像这样:
var values = instance.GetType().GetProperties().Select(x => x.GetValue(instance, null));
如果您还想要属性的名称,请使用this:
var values = instance.GetType().GetProperties().Select(x =>
new
{
property = x.Name,
value = x.GetValue(instance, null)
})
.ToDictionary(x => x.property, y => y.value);
这将选择给定类型的所有属性,并获取所需实例的名称和值。
然而,这种方法只适用于简单的、非索引的属性。
编辑:也看看MSDN上的Bindingflags来限制从GetType().GetProperties
返回的属性-特别是当你需要你的基类的属性时。