依赖注入如何在客户端查询?

时间:2018-06-16 07:48:12

标签: c# vb.net linq ninject

我的软件项目按以下方式设置:

  1. 数据库(这处理数据库特定的工作,如MySQL,SQL Server)
  2. DataClass(此项目将所有数据库表/列映射到POCO类)
  3. 基础结构(使用Ninject处理DataClass和数据库之间的绑定)
  4. 项目本身(依赖于InfrastructureDataClass项目)
  5. 背后的想法是,最终用户可以选择哪种数据库服务器最合适。

    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?

    非常感谢每一个提示

0 个答案:

没有答案