这篇文章我将讲解海绵清单的项目结构。在讲解项目结构前,我要先了解一下在项目中使用的 ORM 框架。在这个项目里所使用的 ORM 框架是 Entity Framework 。 Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应解决方案。该框架曾经为 .NET Framework 的一部分,但 version 6 之后从 .NET Framework 分离出来。 Entity Framework 主要包含如下 6 部分:
- EDM(实体数据模型): EDM包含三个主要部分——概念模型,映射和存储模型:
- 概念模型(entity): 概念模型包含了模型类和它们之间的关系。 这将是独立于数据库表设计。
- 存储模型(data): 存储模型是数据库设计模型,包括表、视图、存储过程、以及它们之间的关系和钥匙。
- 映射(mapping): 映射由概念模型如何映射到存储模型的信息组成。
- LINQ To Entity(L2E): L2E是一种的查询实体对象的语言, 它返回在概念模型中定义的实体。
- Entity SQL: Entity SQL是一个类似于L2E的查询语言。 然而,它比L2E更加复杂。
- Object Services(对象服务):对象服务是访问数据库中的数据并返回数据的主要入口点。它负责数据实例化,把Entity Client Data Provider(下一层)的数据转换成实体对象。
- Entity Client Data Provider:主要职责是将L2E或Entity Sql转换成数据库可以识别的Sql查询语句,它通过ADO.Net Data Provider向数据库发送或者索取数据。
- ADO.Net Data Provider:使用标准的Ado.net与数据库通信。
零、项目结构
通过前面的讲述,你大概对 Entity Framework 有了简单的了解,到目前为止各位读者只需了解这些。在这个专栏后面的文章中我将在使用到 Entity Framework 的时候进行有针对性的讲解。下面我们来看一下项目的结构。项目一共分为 4 个类库和 1 个 Web 项目(如下图)。
- SpongeList.Api
SpongeList.Api 是一个 Web 项目,里面包含了前端页面和 APP 所需要调用的 API 。在 SpongeList.Api 中我们不仅要编写 API ,还要对所有对 API 的调用请求进行验证以及错误处理。
- SpongeList.BLL
SpongeList.BLL 主要是用于处理业务逻辑的,比如分页查询、部分数据写入缓存以及将 SpongeList.Model 返回的结果转化为 SpongeList.Api 可使用的数据等。
- SpongeList.DB
SpongeList.DB 这一层显而易见,我们用它来对数据库操作。在这一层中我们会使用到 Entity Framework 对数据库进行操作。
- SpongeList.Model
SpongeList.Model 就很简单了,主要是数据库表模型和映射,并且在这一层我们将配置验证数据有效性。
- SpongeList.Tools
SpongeList.Tools 是一个辅助层,其中包含了我们项目所需要的所有工具类和方法。
一、预告
下一篇文章我将讲解 SpongeList.DB 和 SpongeList.Model 两层的配置和使用。