動的データを使用したアプリの構築を検討しています。私たちがやりたいのは、いくつかのビジネスルール(検証ルールではなく、アプリの外部またはデータベースに戻るルール)を実行することです。これらのルールを実行すると、検証エラーの列挙リストが返されます。
質問:
ASP.Net動的データに保存前に何らかの「Context.Validate()」を実行して、ビジネスルール検証エラーを取得する方法はありますか?
ありがとう :)
動的データを使用したアプリの構築を検討しています。私たちがやりたいのは、いくつかのビジネスルール(検証ルールではなく、アプリの外部またはデータベースに戻るルール)を実行することです。これらのルールを実行すると、検証エラーの列挙リストが返されます。
質問:
ASP.Net動的データに保存前に何らかの「Context.Validate()」を実行して、ビジネスルール検証エラーを取得する方法はありますか?
ありがとう :)
'OnValidate'メソッドをLinqテーブルの部分クラスに追加できます。次に、このメソッド内で必要なカスタム検証を実行できます。ビジネスルールに失敗した場合は、ValidationExceptionをスローするなど、適切に対応できます。これにより、データがデータベースに保存されなくなります。
[MetadataType(typeof(LinqClassNameMetadata))]
public partial class LinqTableClassName
{
//HERE IS THE SOLUTION
partial void OnValidate(System.Data.Linq.ChangeAction action)
{
//Implement business rules here
//If something is wrong, you can do something like
throw new ValidationException("assert whatever is wrong");
}
}
public class LinqClassNameMetadata
{
//Just an example
[Required]
public object WhateverColumn;
//etc.
}
保存をインターセプトする方法は、使用しているオブジェクト/リレーショナル マッパー (O/RM)、LinqToSQL または Entity Framework によって異なります。
LinqToSql を使用している場合は、次のチュートリアルを参照してください: http://msdn.microsoft.com/en-us/library/bb629301(v=vs.100).aspx
Entity Framework を使用している場合は、次のリンクを参照してください: http://msdn.microsoft.com/en-us/data/gg193959.aspx