c# - 依赖注入如何在客户端查询?
问题描述
我的软件项目是按以下方式设置的:
- 数据库(处理特定于数据库的工作,例如 MySQL、SQL Server)
- DataClass(该项目将所有数据库表/列映射到 POCO 类)
- 基础设施(使用 Ninject 处理 DataClass 和数据库之间的绑定)
- 项目本身(依赖于
Infrastructure
和DataClass
项目)
它背后的想法是最终用户可以选择最适合的数据库服务器。
在Database
项目中,我查询我的数据库,将其转换为 POCO 类并将数据返回给Project
.
到目前为止,这真的很好。由于 Ninject 的后期绑定可能性,我可以在运行时绑定不同的数据库项目。
但是:无论如何我没有得到的是:只要我可以使用静态查询,一切都会像这样:
另一方面Infrastructure
,我可以写这样的东西:
Function GetCustomerWithId(Id as Long) as POCOCustomerClass
现在,我可以通过 id 查询并从项目中Project
取回一个 POCO 类。Database
但是,如何查询中的复杂情况Project
?
例如在客户端我想使用 Linq:
Dim GetCustomers = From Query in POCOCustomerClass
If checkbox.Checked = True
GetCustomers = GetCustomers.Where(Function(item) item.Age > 10)
End If
当我将所有客户从数据库带回 POCO 类并在项目端过滤时,我让它工作的唯一方法。但这没有任何意义,因为查询应该在服务器端完成。
那么,如何在数据库端使用 POCO 类的表达式树并将其转换为相应的 Linq?
非常感谢每一个提示
解决方案
推荐阅读
- javascript - 离子 4 + HttpInterceptor + 令牌
- powershell - 运行 install-package 而不提示安装 nuget
- recursion - 如何在没有运行时多态性的情况下对迭代器执行 N 次“flat_map”(或类似操作)?
- bash - 如何使用 shell 命令运行 tmux
- java - 如何将主类中的变量导入另一个类
- python - Python Pandas 根据“x”值的倍数更新值
- node.js - 错误:ENOENT:.staging 文件夹的所有文件中都没有这样的文件或目录
- python - 我如何制作一个循环,每行打印一个列表的 6 个元素?
- .net - 用于 cefsharp 71.0.2 的点网框架
- bash - 我可以在 2 个单独的终端窗口中查看进程的标准输出和标准错误吗?