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

.NET Programming

Avatar of undefined
Last Comment
WeirdoBc

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
WeirdoBc

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes