我的软件项目按以下方式设置:
Infrastructure
和DataClass
项目)背后的想法是,最终用户可以选择哪种数据库服务器最合适。
在Database
项目中,我查询我的数据库,将其转换为POCO类并将数据提供给Project
。
到目前为止这个工作真的很好。由于Ninject的后期绑定可能性,我可以在运行时绑定不同的数据库项目。
但是:我无论如何都得不到:只要我可以使用静态查询,一切都是这样的:
在Infrastructure
方面,我可以这样写:
Function GetCustomerWithId(Id as Long) as POCOCustomerClass
现在在Project
,我可以通过id进行查询,然后从Database
项目返回一个POCO类。但是,我如何查询Project
中的复杂情况?
例如,在客户端,我想使用Linq:
Dim GetCustomers = From Query in POCOCustomerClass
If checkbox.Checked = True
GetCustomers = GetCustomers.Where(Function(item) item.Age > 10)
End If
当我将所有客户从数据库带回到POCO类并在Project端进行过滤时,我得到它的唯一方法。但这没有任何意义,因为查询应该在服务器端完成。
那么,如何在数据库端使用POCO类的表达式树并将其转换为相应的Linq?
非常感谢每一个提示