Link to home
Start Free TrialLog in
Avatar of WeirdoBc
WeirdoBc

asked on

Filtering a Table in LINQ based on Roles

Hello,
I have a table which has a colomn named EditorGroup. I want to filter what the user sees on this table depending if he is in the EditorGroup or not. The Roles.IsUserInRole(EditorGroup) works fine, but not in LINQ. It tells me that the method cannot be translated to SQL. I looked around the web about that error and it says I should type it as an expression, but how can we type a system function as an expression?

I also tried using the IsUserRole function inside a property, but I still get the same message.

What are my options?

Thanks,

WeirdoBc
Partial Public Class RegInfoBDDataContext

    Public ReadOnly Property EtabsByRoles() As System.Collections.Generic.IEnumerable(Of Etab)
        Get
            If Not Roles.IsUserInRole("TCRAL Editeurs TCR") Then
                Return Me.Etabs.Where(Function(e) e.IsUserInRole).AsEnumerable
            Else
                Return Me.Etabs.AsEnumerable
            End If
        End Get
    End Property
End Class

Partial Public Class Etab
    Public ReadOnly Property IsUserInRole() As Boolean
        Get
            Return Roles.IsUserInRole(Me.EditorGroup)
        End Get
    End Property
End Class

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of WeirdoBc
WeirdoBc

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial