Tôi đã tạo một dự án Ứng dụng WPF Visual Basic có chứa Toy.edmx, một Mô hình Dữ liệu Thực thể ADO.NET được tạo từ một cơ sở dữ liệu có tên là Toy.Làm cách nào để mở rộng các đối tượng ADO.NET Entity Framework với các lớp một phần?
nó Window1.xaml.vb tập tin trông như thế này:
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
Đó chỉ chạy tốt.
Nhưng, nếu tôi thêm các tập tin Client.vb ...
1 Partial Public Class Client 2 Function IsWashington() As Boolean 3 Return Me.LastName = "Washington" 4 End Function 5 End Class
... và thêm một mệnh đề WHERE để Window1.xaml.vb truy vấn của tôi ...
9 Label1.Content = (From c As Client In dc.ClientSet _ 10 Where c.IsWashington _ 11 Select c).First.FirstName
... sau đó tôi nhận được NotSupportedException này:
LINQ to Entiti es không nhận ra phương thức 'Phương thức Boolean IsWashington()' và phương pháp này không thể được dịch thành biểu thức cửa hàng.
Làm cách nào để mở rộng các đối tượng Khung thực thể ADO.NET với các lớp một phần?
Tôi hy vọng rằng âm thanh không quá khắc nghiệt ... điều tôi nên nói là khi bạn truy vấn là "cục bộ", bạn có thể thêm mệnh đề where (nhưng đó là LINQ to Objects - và đó là local, chứ không phải DB cấp độ). –