次のようCatalog
に、メタデータ クラスで装飾する EF エンティティがあります。
public partial class Catalog
{
[Editable(false)]
[Display(ResourceType = typeof(Resources), Name = "ID")]
public string ID { get; set; }
[Required()]
[MaxLength(300)]
[Display(ResourceType = typeof(Resources), Name = "CatalogName")]
public string CatalogName { get; set; }
}
これを Razor ビューに公開すると、これらの値が正しく表示されます。ただし、ビューモデルを次のように使用したいと考えています。
public class CatalogViewModel
{
private readonly Catalog _catalog;
// I want the attributes for Catalog.CatalogName to apply here.
public String CatalogName
{
get { return _catalog.CatalogName; }
}
}
検証を使用して、エンティティからの情報をビューモデルにそのまま表示できるようにしたいと考えています。ただし、その型にはアクセスできませんResources
。この情報をモデルからビューモデルに投影する方法はありますか?
編集:
ビジネス レイヤーの検証は、エンティティに注釈が付けられます。そして、検証と表示の情報が 1 つの場所にあるように、この方法を維持したいと考えています。また、ビューごとに 1 ビュー モデルのパターンを使用します。したがって、ここに注釈を付けると、回避しようとしている方法で DRY に違反します。