Csharp x学习
1.事件的拥有者
2.事件的成员
3.事件的响应者
4.事件处理器
5.事件订阅——把事件处理器与事件关联在一起,本质上是一种以委托类型为基础的“约定”
事件处理器是方法成员
原文链接如下:https://blog.csdn.net/long870294701/article/details/87882615
AsNoTracking称之为获取不带变动跟踪的实体查询。
在一些情况下,我们只需要查询返回一个制度的数据记录,而不会对数据记录进行任何的修改。这种时候不希望Entity Framework进行不必要的状态变动跟踪,可以使用Entity Framework的AsNoTracking方法来查询返回不带变动跟踪的查询结果。
链接地址:https://blog.csdn.net/u011127019/article/details/53941235 Entity Framework 通过DbContext.ChangeTracker对实体对象的变动进行跟踪,实现跟踪的方式有两种:变动跟踪快照和变动跟踪代理。
- 变动追踪快照
- 变动追踪代理
EF Core迁移功能可以通过使EF更新数据库架构而不是创建新数据库来解决如下问题:
当数据模型更改时,模型都无法与数据库保持同步。每当更改数据模型之后你都可以删除数据库,EF将创建匹配该模型的新数据库并用测试数据为其设定种子。
但是在实际生产环境中,通常需要存储保留的数据,以便不会再每次更改(如添加新列)时丢失所有数据。而EF Core的数据迁移功能可以解决盖尔问题。
在Package Manager console中运行以下命令,安装包管理器控制台工具:
Install-Package Microsoft.EntityFrameworkCore.Tools
在Package Manager Console中运行以下命令,更新这些工具。
Update-Package Microsoft.EntityFrameworkCore.Tools
通过运行以下命令验证是否已安装这些工具:
Get-Help about_EntityFrameworkCore
以下示例使用迁移名称创建用于 InitialCreate 迁移的脚本。
Script-Migration -To InitialCreate
以下示例使用迁移 ID,为 InitialCreate 迁移后的所有迁移创建一个脚本。
Script-Migration -From 20180904195021_InitialCreate
将数据库更新到上次迁移或指定迁移。
下面的示例将还原所有迁移。
Update-Database -Migration 0
下面的示例将数据库更新为指定的迁移。 第一个使用迁移名称,第二个使用迁移 ID 和指定的连接:
Update-Database -Migration InitialCreate Update-Database -Migration 20180904195021_InitialCreate -Connection your_connection_string
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
使用特性指定数据验证规则和验证错误消息。 StringLength 特性设置数据库中的最大长度,并为 ASP.NET Core MVC 提供客户端和服务器端验证。 还可在此属性中指定最小字符串长度,但最小值对数据库架构没有影响。
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace ContosoUniversity.Models
{
public class Student
{
public int ID { get; set; }
[StringLength(50)]
public string LastName { get; set; }
[StringLength(50)]
public string FirstMidName { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime EnrollmentDate { get; set; }
public ICollection<Enrollment> Enrollments { get; set; }
}
}
可使用 RegularExpression 特性应用输入限制。 例如,以下代码要求第一个字符为大写,其余字符按字母顺序排列:
[RegularExpression(@"^[A-Z]+[a-zA-Z]*$")]
学习创建WebAPI
###CreatedAtAction 方法:
- 如果成功,则返回 HTTP 201 状态代码。 HTTP 201 是在服务器上创建新资源的 HTTP POST 方法的标准响应。
- 向响应添加位置标头。 Location 标头指定新建的待办事项的 URI。 有关详细信息,请参阅创建的 10.2.2 201。
- 引用 GetTodoItem 操作以创建 Location 标头的 URI。 C# nameof 关键字用于避免在 CreatedAtAction 调用中硬编码操作名称。