Я создал проект приложения Visual Basic WPF, который содержит Toy.edmx, модель данных объекта ADO.NET, созданную из базы данных с именем Toy.
Файл Window1.xaml.vb выглядит следующим образом:
1 Class Window1
2
3 Private Sub Window1_Loaded( _
4 ByVal sender As System.Object, _
5 ByVal e As System.Windows.RoutedEventArgs) _
6 Handles MyBase.Loaded
7
8 Dim dc As New ToyEntities1
9 Label1.Content = (From c As Client In dc.ClientSet _
10 Select c).First.FirstName
11
12 End Sub
13
14 End Class
Это отлично работает.
Но, если я добавлю файл Client.vb ...
1 Partial Public Class Client
2 Function IsWashington() As Boolean
3 Return Me.LastName = "Washington"
4 End Function
5 End Class
... и добавить предложение WHERE в мой Window1.xaml.vb запрос ...
9 Label1.Content = (From c As Client In dc.ClientSet _
10 Where c.IsWashington _
11 Select c).First.FirstName
... тогда я получаю это NotSupportedException:
LINQ to Entities не распознает метод метода Boolean IsWashington (), и этот метод нельзя преобразовать в выражение хранилища.
Как расширить объекты ADO.NET Entity Framework частичными классами?