我正在尝试调整 Breeze NoDb示例应用程序中采用的方法,并将其连接到不使用实体框架的现有应用程序后端(它具有我正在尝试重用的现有业务对象)。
我正在努力了解如何最好地将控制器收到的查询转换为对我的业务对象的调用以获取/保存数据,以及如何优化这些查询。
目前在 NoDb 示例应用程序中TodoContext
,服务器上的类充当对象的内存数据库,并通过类将TodoList
这些对象呈现给. 然后将此列表公开为单个操作。这允许客户端将 odata 过滤条件传递给服务器并返回过滤后的集合(如果项目指定了 odata 搜索过滤器)。我相信这一切都会自动神奇地发生,这要归功于 BreezeController。TodoRepository
TodoController
TodoController
IQueryable<TodoList> TodoList()
TodoList
现在,假设您TodoList
在某种形式的数据存储中存储了大量的存储到内存对象中,以便能够将过滤后的结果返回给客户端。
您将如何使用客户端请求中可用的过滤条件来减少从服务器上的数据存储中提取的数据量?例如,我想检索包含“买牛奶”的TodoList
项目集合TodoItem
,但我不想将TodoList
所有详细项目加载到内存中以找出答案。我宁愿将 odata 过滤条件转换为本地数据存储查询(或者在我的情况下调用我现有的业务对象)。
希望这是有道理的。
谢谢!理查德