EF6如何从另一个对象(相同的实体但不同的键)更新对象

时间:2015-04-16 16:20:03

标签: vb.net entity-framework automapper

我有两个对象父和子(同一个实体),我需要从父级更新具有所有属性(当然没有键)的子对象,有很多属性。是否有更好的方法来执行它,不更新从父到子的每个字段?我尝试过自动播放器,但没有成功。 谢谢!

1 个答案:

答案 0 :(得分:0)

我没有找到使用EF的方法,自动生成器产生了一些问题。解决方案:我使用了反射并获得了每种类型我想要复制的属性:

Dim listTypes As New List(Of Type)
                listTypes.Add(GetType(String))
                listTypes.Add(GetType(Date))
                listTypes.Add(GetType(Integer))
                listTypes.Add(GetType(Boolean))
                listTypes.Add(GetType(Nullable(Of Integer)))
                listTypes.Add(GetType(Nullable(Of Boolean)))
                listTypes.Add(GetType(Nullable(Of Date)))
Dim parentProperties = srParent.GetType().GetProperties.Where(Function(p) listTypes.Contains(p.PropertyType))
                For Each pp In parentProperties
                    If pp.Name.ToUpper() <> "SR_ID" AndAlso pp.Name.ToUpper() <> "SR_FK_SERVICE_REQUEST_PARENT" AndAlso pp.Name.ToUpper() <> "SR_BL_VISIBLE" Then
                        Dim value = pp.GetValue(srParent)
                        srChild.GetType().GetProperty(pp.Name).SetValue(srChild, value)
                    End If
                Next

`