モデルの状態に検証エラーを追加する方法を知っています。モデルクラスに検証アノテーションを追加する方法を知っています。問題は、最初にデータベースを使用すると、生成されたコードに触れたくないということです。再生成すると、カスタマイズが失われるからです。私はいつもパーシャルでカスタマイズしようとしますが、パーシャルで既存のプロパティに注釈を追加することはできません。
ここでのベストプラクティスは何ですか?
モデルの状態に検証エラーを追加する方法を知っています。モデルクラスに検証アノテーションを追加する方法を知っています。問題は、最初にデータベースを使用すると、生成されたコードに触れたくないということです。再生成すると、カスタマイズが失われるからです。私はいつもパーシャルでカスタマイズしようとしますが、パーシャルで既存のプロパティに注釈を追加することはできません。
ここでのベストプラクティスは何ですか?
を活用する必要がありますMetadataTypeAttribute
次のようにします。
新しいクラス ファイルを作成し、部分クラスと同じ名前空間に保持します。この新しいクラスは、データベースからモデルを更新しても、検証ルールを保持します。以下のように新しいクラスファイルの内容を変更し、仕様に変更します。
[MetadataTypeAttribute(typeof(YourCustomClassForValidation))]
public partial class Person
{
// No need to put anything here because you already defined these properties
}
public class YourCustomClassForValidation
{
[DisplayName("Full Name")]
public string name { get; set; }
}
EDMX ファイルとエンティティを分離する必要があります。
EDMX モデルを更新した後、新しく生成されたエンティティからの変更を Data.Contracts プロジェクトのエンティティに手動で適用する必要があります。