假设我有这段代码:
public bool Important { get; set; }
private bool _dependsOnImportant;
public bool DependsOnImportant
{
get;
set
{
if (value && !Important)
throw new InvalidOperationException();
_dependsOnImportant = value;
}
}
我想保护将DependsOnImportant设置为true,以便只有当Important为true时才可以。这是POCO课程。根据:Entity Framework 4.1 - Code first. Doesn't EF override my virtual members?我在从数据库加载对象时将使用我的setter。 当调用DependsOnImportant setter时,如何确保已使用数据库中的数据设置了“重要”? EF是否足够聪明,可以检测到一个setter正在使用另一个setter并首先加载该数据?我不这么认为。我认为使用默认构造函数创建一个新对象(将所有字段设置为默认值),然后调用setter来填充对象。
所以我的问题是:我们可以确定调用setter的顺序吗?但最重要的是:我们想拥有这些知识吗?