新创建的项目字段值

时间:2012-06-26 08:34:42

标签: c# .net linq entity-framework linq-to-entities

创建新项目时;有没有办法访问所有设置的字段值。

由于我使用Entity.GetModifiedMembers()方法访问更新时为了记录而更改的字段的值,目的是在创建时通过实体获得等效结果,如方法{{1 }}

所以一般来说,我只需要一个带有“成员名”和“价值”项的键值对。

示例:

Entity.GetSetMembers()

1 个答案:

答案 0 :(得分:1)

我发现,就我所知,反思就是答案:所以这就是我提出的方法:

public static Dictionary<string, string> GetFieldsAndValuesOfCreatedItem(object item)
{
    var propertyInfoList = item.GetType().GetProperties(BindingFlags.DeclaredOnly |
                                                            BindingFlags.Public |
                                                            BindingFlags.Instance);

    var list = new Dictionary<string, string>();

    foreach (var propertyInfo in propertyInfoList)
    {
        var valueObject = propertyInfo.GetValue(item, null);
        var value = valueObject != null ? valueObject.ToString() : string.Empty;

        if (!string.IsNullOrEmpty(value))
        {
            list.Add(propertyInfo.Name, value);
        }
    }

    return list;
}