在为具有 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 才能获得正确的结果。
我有一个字符串属性
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 才能获得正确的结果。