依赖注入的基本概念
- 依赖:一个类依赖于另一个类或接口来完成其功能。
- 注入:依赖项由外部提供给类,而不是由类自己创建。
builder.Services.AddScoped<IMyDependency, MyDependency>();
这行代码使用 AddScoped
方法将 IMyDependency
接口和 MyDependency
类注册到依赖注入容器中。AddScoped
表示该服务的作用域为当前请求生命周期。这意味着在同一个 HTTP 请求中,IMyDependency
的实例是共享的,但在不同的请求之间,每个请求都会有新的实例。
builder.Services.AddRazorPages();
这行代码配置了 ASP.NET Core 以支持 Razor Pages。Razor Pages 是一种页面模型,适合构建具有简单 UI 的应用程序。
即pageMode直接能调用IMYDependency,因为pageMode与IMYDependency在同一作用域
过滤器
-
授权过滤器:
- 用于在执行动作之前进行权限验证,确保只有经过授权的用户才能访问特定的动作。
-
资源过滤器:
- 在执行动作之前和之后执行,可以用于处理资源级别的逻辑,如日志记录、性能监控等。
-
动作过滤器:
- 在执行动作方法之前和之后执行,可以用于修改输入参数或输出结果,如验证模型、缓存结果等。
-
异常过滤器:
- 用于捕获并处理动作执行期间抛出的异常,确保应用程序的稳定性和用户体验。
-
结果过滤器:
- 在执行动作结果之前和之后执行,可以用于修改动作结果,如压缩响应、添加HTTP头等。
EF 的主要特点
-
对象关系映射(ORM):
- 将数据库表映射为 C# 类(实体)。
- 通过 LINQ 查询数据库,返回对象集合。
-
代码优先(Code First):
- 通过代码定义数据库模型,EF 自动生成数据库表结构。
-
数据库优先(Database First):
- 从现有数据库生成 C# 类和上下文。
-
模型优先(Model First):
- 通过设计器创建模型,然后生成数据库。
-
迁移(Migrations):
- 管理数据库模式的变化,支持版本控制。