支持字段

支持字段允许 EF 读取或写入字段,而不是使用属性。 当使用类中的封装来限制或通过应用程序代码对数据访问进行限制时,这可能很有用,但在不使用这些限制/增强功能的情况下,应从数据库中读取或写入值。
在下面的示例中, Url将属性配置为具有_url其支持字段:
public class Blog
{
    private string _url;

    public int BlogId { get; set; }

    public string Url
    {
        get { return _url; }
        set { _url = value; }
    }
}
请注意,仅为模型中包含的属性发现支持字段。 有关模型中包含哪些属性的详细信息,请参阅包括 & 排除属性.
你还可以使用数据批注(在 EFCore 5.0 中提供)或 Fluent API 来配置支持字段:
数据注释(data-annotations)
public class Blog
{
    private string _validatedUrl;

    public int BlogId { get; set; }

    [BackingField(nameof(_validatedUrl))]
    public string Url
    {
        get { return _validatedUrl; }
    }

    public void SetUrl(string url)
    {
       // put your validation code here

        _validatedUrl = url;
    }
}


Fluent Api
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>()
        .Property(b => b.Url)
        .HasField("_validatedUrl");
}