2

假设我有这个代码:

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。EF 不会覆盖我的虚拟成员吗?从数据库加载对象时,EF 将使用我的 setter。当调用 DependsOnImportant 设置器时,如何确定已使用数据库中的数据设置了重要信息?EF 是否足够聪明,可以检测到一个 setter 正在使用另一个 setter 并首先加载该数据?我不这么认为。我认为使用默认构造函数创建一个新对象(将所有字段设置为默认值),然后调用 setter 来填充对象。

所以我的问题是:我们能否确定调用 setter 的顺序?但最重要的是:我们想拥有这些知识吗?

4

0 回答 0