gpt4 book ai didi

.net - 如何使用部分类扩展 ADO.NET Entity Framework 对象?

转载 作者:行者123 更新时间:2023-12-04 18:00:17 27 4
gpt4 key购买 nike

我创建了一个包含 Toy.edmx 的 Visual Basic WPF 应用程序项目,这是一个从名为 Toy 的数据库生成的 ADO.NET 实体数据模型。

它的 Window1.xaml.vb 文件如下所示:

1个类(class)窗口1
2
3 私有(private)子窗口1_Loaded(_
4 ByVal 发送者作为 System.Object, _
5 ByVal e 作为 System.Windows.RoutedEventArgs) _
6 句柄 MyBase.Loaded
7
8 Dim dc 作为新的 ToyEntities1
9 Label1.Content =(来自 c 作为客户端在 dc.ClientSet _
10 选择 c).First.FirstName
11
12 结束子
13
14 结束类

那运行得很好。

但是,如果我添加文件 Client.vb ...

1 部分公开课客户端
2 函数 IsWashington() 作为 bool 值
3 Return Me.LastName = "华盛顿"
4 结束功能
5 结束类

...并将 WHERE 子句添加到我的 Window1.xaml.vb 查询中...

9 Label1.Content =(来自 c 作为客户端在 dc.ClientSet _
10 在哪里 c.IsWashington _
11 选择 c).First.FirstName

...然后我得到这个 NotSupportedException:

LINQ to Entities does not recognize the method 'Boolean IsWashington()' method, and this method cannot be translated into a store expression.



如何使用部分类扩展 ADO.NET Entity Framework 对象?

最佳答案

这是你想要做的 - 创建一个将过滤器应用于客户端查询的方法。

我不知道 vb.net,所以不要 100% 相信这个徒手代码。

Partial Public Class Client
Public Shared Function IsWashington(query As IQueryable(Of Client)) As IQueryable(Of Client)
Return query.Where(Function(someClient) someClient.LastName = "Washington")
End Function
End Class

后来,一些调用代码。
IQueryable(Of Client) someQuery = dc.ClientSet.AsQueryable
someQuery = Client.IsWashington(someQuery)

Label1.Content = someQuery.First.FirstName

希望这有效!

关于.net - 如何使用部分类扩展 ADO.NET Entity Framework 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com