我正在使用Entity framework 6 DBContext,Database First。
让我们说一个实体中有一个 myobj1 对象。
有没有办法循环遍历这个对象的所有属性并获取每个属性的当前值?
当然,我需要一个适用于任何实体的任何对象的通用代码。
答案 0 :(得分:1)
这样的事情:
var values = instance.GetType().GetProperties().Select(x => x.GetValue(instance, null));
如果您还想要该属性的名称,请使用:
var values = instance.GetType().GetProperties().Select(x =>
new
{
property = x.Name,
value = x.GetValue(instance, null)
})
.ToDictionary(x => x.property, y => y.value);
这将选择给定类型的所有属性,并获取所需实例的名称和值。
但是,此方法仅适用于简单的非索引属性。
编辑:同时查看Bindingflags上的MSDN以限制从GetType().GetProperties
返回的属性 - 特别是当您还需要基类的属性时。