Donnerstag, 20. November 2008

m:m Beziehungen

Code-Schnippsel: Wie liest man Objekte aus einer m:m Beziehung aus. 

        Dim qe As New QueryExpression()
        qe.EntityName = "sk_advisor"
        qe.ColumnSet = New AllColumns()

        Dim le As New LinkEntity()
        le.LinkFromEntityName = "sk_advisor"
        le.LinkFromAttributeName = "sk_advisorid"
        le.LinkToEntityName = "sk_sk_advisor_sk_webseminar"
        le.LinkToAttributeName = "sk_advisorid"

        Dim ce As New ConditionExpression()
        ce.AttributeName = "sk_webseminarid"
        ce.Operator = ConditionOperator.Equal
        ce.Values = New Object() {New Guid(objid)}

        Dim le2 As New LinkEntity()
        le2.LinkFromEntityName = "sk_sk_advisor_sk_webseminar"
        le2.LinkFromAttributeName = "sk_webseminarid"
        le2.LinkToEntityName = "sk_webseminar"
        le2.LinkToAttributeName = "sk_webseminarid"

        le2.LinkCriteria = New FilterExpression()
        le2.LinkCriteria.Conditions = New ConditionExpression() {ce}

        le.LinkEntities = New LinkEntity() {le2}
        qe.LinkEntities = New LinkEntity() {le}

        Dim rmRequest As New RetrieveMultipleRequest()
        rmRequest.ReturnDynamicEntities = True
        rmRequest.Query = qe
        Try
            Dim response As RetrieveMultipleResponse = CType(cservice.Execute(rmRequest), RetrieveMultipleResponse)
            Return response.BusinessEntityCollection
        Catch ex As Exception
            Return Nothing
        End Try

Keine Kommentare: