Entity framework 无限循环,EF相关实体

Entity framework 无限循环,EF相关实体,entity-framework,loops,infinite,Entity Framework,Loops,Infinite,我正在使用EF5和VB.NET。 我有一个处理维度和立方体的上下文 这一切都很好,但当我想加载一个立方体及其相关维度时,每个维度都有与之相关的立方体,所以我最终陷入了一个无法完成的大循环 这张照片的最佳方法是什么? 如何加载所有多维数据集和相关维度,以及加载所有维度及其相关多维数据集而不以无限循环结束 任何想法都将不胜感激 干杯 更新: 这是我用来从EF模型加载“操作模型”的函数示例。 其中一个循环被触发,在这种情况下,“objCube.LoadCubeFromDB(c)”,因为这个函数包含Lo

我正在使用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.GID

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对象检索并尝试填充另一个模型时,我基本上需要手动加载“操作模型”及其所有子集合。这就是循环的起点。维度需要立方体,立方体需要维度