我有一个带有以下属性的子ListBox
:
Property Query As Func(Of IEnumerable)
这个我喜欢这样使用
MyListBox.Query=Function() MyDBContext.Products
或
MyListBox.Query=Function() MyDBContext.Clients.Where(function(x) x.Age>25)
等
我现在看到我全身使用Query
属性的方式,从不处理MyDBContext,因为我没有使用Using
所以问题是:
我的ListBox中是否有一种方法只能获取func的函数部分(即.Clients.Where(function(x) x.Age>25)
并将其应用于我将在MyListBox
内部使用和处理的不同dbcontext?
非常感谢
答案 0 :(得分:0)
我不熟悉"查询"列表框上的属性,这是一个自定义的Listbox扩展吗?在任何情况下,如果您想要使用DbContext中的数据进行一次性控制,而不打开DbContext引用,那么:
MyListBox.Query=Function() MyDBContext.Clients.Where(function(x) x.Age>25).ToList()
应该这样做。
但是,如果您的控件能够进行相对智能的分页滚动等处理大数据量,那么您可能希望将该DbContext引用构建到列表框控件代码中,在这种情况下,您可以使用#39 ; d用于识别DbSet和Where子句以从中检索其数据。这可能需要一些反射来传递DbSet属性名称,然后针对List的DbContext重新解析它,然后将其提供给Where表达式。 (可能比你需要的更复杂。:))