Jak: filtrowanie danych za pomocą kodu
Używając metody <EntitySet>_Filter, można zaimplementować zabezpieczenia na poziomie wierszy, tak aby pojawiał się tylko podzbiór rekordów, bazujący na uprawnieniach użytkownika.Na przykład można pozwalać pracownikowi na wyświetlanie informacji na temat tylko jego wynagrodzenia.
Aby zastosować filtr
W Eksploratorze rozwiązań otwórz menu skrótów dla encji, a następnie wybierz Otwórz.
Encja zostanie otwarta w Projektancie danych.
Na pasku poleceń w Projektancie danych wybierz strzałkę obok przycisku Napisz kod, a następnie wybierz polecenie EntitySet**_Filter**.
Zostanie otwarty Edytor kodu.
Dodaj kod do metody.
Poniższy przykład kodu filtruje encje Pracownicy tak, aby bieżący użytkownik mógł wyświetlić tylko te rekordy, które zawierają jego nazwisko:
Private Sub Employees_Filter(ByRef filter As System.Linq.Expressions.Expression(Of System.Func(Of Employee, Boolean))) filter = Function(e) e.EmployeeName = Me.Application.User.Name End Sub
partial void Employees_Filter(ref Expression<Func<Employee, bool>> filter) { filter = e => e.EmployeeName == this.Application.User.Name; }