私は、エンティティが不完全な状態で作成され、しばらくの間不完全なままである可能性が高いコンテンツ開発シナリオで作業しています。関連するワークフローは非常にアドホックであり、より構造化されたDDDアプローチを使用できません。
常に満たす必要のある一連の検証ルールと、エンティティが「完了する」前に満たす必要のある一連の検証ルールがあります。
組み込みのASP.NETMVC検証を使用して、前者を検証しています。後者をキャプチャするためにどのようなアプローチを使用できますか?
例えば:-
public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
public class Bar
{
public int Id { get; set; }
[Required] // A Bar must be owned by a Foo at all times
public int FooId { get; set; }
public virtual Foo Foo { get; set; }
[Required] // A Bar must have a working title at all times
public string WorkingTitle { get; set; }
public bool IsComplete { get; set; }
// Cannot use RequiredAttribute on Description as the
// entity is very likely to be created without one,
// however a Description is required before the entity
// can be marked as "IsComplete"
public string Description { get; set; }
}