一. 支持字段
EF允许读取或写入字段而不是一个属性。在使用实体类时,用面向对象的封装来限制或增强应用程序代码对数据访问的语义时,这可能很有用。无法使用数据注释配置。除了约定,还可以使用Fluent API为属性配置支持字段。
1.1 约定
public class Blog
{
// _
private string _url;
public int BlogId { get; set; }
public string Url
{
get { return _url; }
set { _url = value; }
}
}
1.2 Fluent API
modelBuilder.Entity()
.Property(b => b.Url)
.HasField("_validatedUrl");
public class Blog
{
private string _validatedUrl;
public string Url
{
get { return _validatedUrl; }
}
public void SetUrl(string url)
{
//...
_validatedUrl = url;
}
}
二. 构造函数
从开始 EF Core 2.1,可以定义带参数的构造函数,并在创建实体实例时让EF Core调用此构造函