到目前为止,在我的办公室里,我已经开发了许多中小型.Net基于Web的应用程序,我曾经在这些应用程序中为它们构建这样的东西 -
我以前在我的解决方案中为上面列出的每个项目都有不同的项目。
但现在我们正在转向OData Web API并试图摆脱实体框架。所以我对我的解决方案架构应该是什么样子有点困惑。
问题1 - 我的DBContext文件应该放在哪里?
问题2 - 如何使用Controller中的OData进行查询 - >服务 - >存储库
问题3 - 我是否仍然可以遵循上面给出的架构模型并使用OData代替实体框架从数据库获取数据?
问题4 - 我仍然需要在数据源和控制器之间使用单独的业务逻辑层(服务层),这样我可以保持控制器尽可能薄请原谅我是否提出任何错误/愚蠢的问题,因为这是我第一次尝试弄清楚如何使用OData来执行我的任务。
答案 0 :(得分:0)
以下是我们在项目中所做工作的详细信息,如果这可以在一定程度上帮助您。我们有Web API服务,它有API控制器,用于Json序列化最终结果。以下是重要的层次及其各自的作用:
Web API控制器
BL(业务层)
辅助层
IEnumerable<T>
。有时,对于特定情况,我们甚至直接获取DataTable / Dataset并将其用于进一步处理共同实体:(可以跨上面定义的层访问它们,但我们限制以确保一致性)
数据 - 填充数据库数据的简单POCO类
UI - 最终结果实体
输入 - 来自REST调用的输入
常量 - 用于项目中的硬编码和常量值
Web API下面的所有C#层都可以创建为dll,因为关系是单向的,来自BL - Helper - Repository - ADO Helper。可以始终插入或调整用于特定目的的任何附加层。将每个实体的具体作用分开是很重要的。