Entity framework 无限循环,EF相关实体
我正在使用EF5和VB.NET。 我有一个处理维度和立方体的上下文 这一切都很好,但当我想加载一个立方体及其相关维度时,每个维度都有与之相关的立方体,所以我最终陷入了一个无法完成的大循环 这张照片的最佳方法是什么? 如何加载所有多维数据集和相关维度,以及加载所有维度及其相关多维数据集而不以无限循环结束 任何想法都将不胜感激 干杯 更新: 这是我用来从EF模型加载“操作模型”的函数示例。 其中一个循环被触发,在这种情况下,“objCube.LoadCubeFromDB(c)”,因为这个函数包含LoadDimensionFromDB并启动循环 公共子加载维度FromDB(objDB作为dbDimension) Me.Name=objDB.Name&“ Me.Description=objDB.Description&“ Me.ID=objDB.ID&“ Me.GID=objDB.GIDEntity framework 无限循环,EF相关实体,entity-framework,loops,infinite,Entity Framework,Loops,Infinite,我正在使用EF5和VB.NET。 我有一个处理维度和立方体的上下文 这一切都很好,但当我想加载一个立方体及其相关维度时,每个维度都有与之相关的立方体,所以我最终陷入了一个无法完成的大循环 这张照片的最佳方法是什么? 如何加载所有多维数据集和相关维度,以及加载所有维度及其相关多维数据集而不以无限循环结束 任何想法都将不胜感激 干杯 更新: 这是我用来从EF模型加载“操作模型”的函数示例。 其中一个循环被触发,在这种情况下,“objCube.LoadCubeFromDB(c)”,因为这个函数包含Lo
Using context As New QDModelContext()
Dim dbDim = context.Dimensions.Find(objDB.dbDimensionID)
For Each c In objDB.Cubes
Dim objCube As Cube = New Cube()
objCube.LoadCubefromDB(c)
Me.Cubes.Add(c)
Next
For Each p In dbDim.DimensionTIs
Dim objTI As TI = New TI()
objTI.LoadTIfromDB(p)
Me.addTi(objTI)
Next
For Each e In dbDim.DimensionElements
Dim objElem As Element = New Element()
objElem.LoadElementFromDB(e)
Me.addElement(objElem)
Next
For Each a In dbDim.DimensionAttributes
Dim objAttr As Attribute = New Attribute()
objAttr.LoadAttributeFromDB(a)
Me.addAttributes(objAttr)
Next
For Each s In dbDim.DimensionSubsets
Dim objSet As DimensionSubset = New DimensionSubset()
objSet.LoadDimSubsetfromDB(s)
Me.dimSubset.Add(objSet)
Next
End Using
End Sub您尝试的代码片段至少不起作用。我敢打赌,由于一个简单的疏忽,您会得到一个无限循环,我怀疑它与实体框架或任何其他更大的组件有关。正如@philsoady所说的代码片段应该会有所帮助:)谢谢您的回复。我的模型由从EF使用的类模型继承的抽象类组成,但也有一个“操作模型”,它与EF模型完全相同,并从相同的抽象类继承,例如EF需要的iCollections更少的字段和不同的数据类型。因此,当我从EF模型中使用linq对象检索并尝试填充另一个模型时,我基本上需要手动加载“操作模型”及其所有子集合。这就是循环的起点。维度需要立方体,立方体需要维度