在为具有 DB NULL 的列重新水化实体时,Entity Framework 是否会使用 null 调用 属性 setter?

Does Entity Framework call property setters with null when rehydrating entities for columns with DB NULL?

我有一个字符串属性

public string XYZ 
{ 
     get => // do stuff
     set => // do stuff which handles null
}

因为我希望它会被调用....

但真的会这样吗? (EF6.4)

看来会的。如果您使用支持字段实现 属性,则可以通过在 setter 中放置一个断点来轻松测试它。 EG

private string xyz;
public string XYZ
{
    get
    {
        return xyz;
    }
    set
    {
        xyz = value;
    }
}

而且我认为它必须如此,因为 EF 不知道您的实体是否具有 属性 的 non-standard 默认值。例如你可以写

private string xyz = "none";
public string XYZ
{
    get
    {
        return xyz;
    }
    set
    {
        xyz = value;
    }
}

因此水合代码需要 运行 setter 才能获得正确的结果。