NerdDinnerチュートリアルでは、IsVaildメソッドとGetRuleViolationメソッドをチェックアウトすることができます。ビジネスルールとデータベースルールに基づいて、これらのルールを使用して、挿入する前のデータをチェックすることができます。 IsValidForInsertメソッドを作成して、実行する必要のある特定のルールを挿入することもできます。
NerdDinnerでは、GetRuleViolationを使用すると、違反したルールを取得して、選択したとおりにインターフェイスにバブルアップすることができます。
public bool IsValid
{
get { return (GetRuleViolations().Count() == 0); }
}
public IEnumerable<RuleViolation> GetRuleViolations()
{
if (CheckDbForViolation)
yield return new RuleViolation("Database Violation", "SomeField");
if (String.IsNullOrEmpty(Title))
yield return new RuleViolation("Title is required", "Title");
if (String.IsNullOrEmpty(Description))
yield return new RuleViolation("Description is required", "Description");
if (String.IsNullOrEmpty(HostedBy))
yield return new RuleViolation("HostedBy is required", "HostedBy");
... etc ...
yield break;
}
public bool CheckDbForViolation()
{
/// Do your database work here...
}
これをさらに実行し、データベースコードをリポジトリに分割することができます。 CheckDbForViolationは情報のレポを呼び出し、違反があったかどうかを判断します。実際にリポジトリを使用している場合は、それが望ましい方法だと思います。
私はこれをNerdDinnerのコンテキストで保持し、現時点ではサービスを使用しないことを望んでいました。できるだけシンプルに物事を維持して、それがどのように繋がっているかを頭の中で知りたいですか?ありがとうございました – atwrok8