このコードがあるとしましょう:
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によって使用されます。DependsOnImportant セッターが呼び出されたときに、Important がデータベースからのデータで既に設定されていることを確認するにはどうすればよいですか? EF は、あるセッターが別のセッターを使用していることを検出し、そのデータを最初にロードするほどスマートになりますか? 私はそうは思わない。デフォルトのコンストラクターで新しいオブジェクトが作成され(すべてのフィールドをデフォルト値に設定)、セッターが呼び出されてオブジェクトにデータが入力されると思います。
私の質問は次のとおりです。セッターが呼び出される順序を決定できますか? しかし、最も重要なことは、私たちはその知識を持ちたいですか?