データベースを最初に使用して、mvc 4を使用しています。
ファイルを更新するたびにmodel.edmx
、追加した表示名属性が削除されます。更新間で表示名属性を保持するにはどうすればよいですか?
データベースを最初に使用して、mvc 4を使用しています。
ファイルを更新するたびにmodel.edmx
、追加した表示名属性が削除されます。更新間で表示名属性を保持するにはどうすればよいですか?
あなたは使いたくなるでしょうSystem.ComponentModel.DataAnnotations
。以下は、EF の「ユーザー」テーブルの単純な例で、その方法を示しています。
namespace YourNamespace.BlaBlaBla
{
[MetadataType(typeof(UserHelper))]
public partial class User { }
public class UserHelper
{
[Display(Name = "Your New Title For Name")]
public string Name { get; set; }
}
}
クラスに検証を含めることもできます。まったく同じ名前の部分クラスであることを確認してください。.edmx とまったく同じ名前空間にある 必要があることも忘れないでください。
MetaDataTypes モデルを使用する必要があります。
[MetadataType(typeof(ModelMD))]
public partial class Model
{
//This is for "extending" the EF generated model, saying what class is used for metadata, in your case DisplayName
}
public partial class ModelMD
{
[Display(Name = "Model_Title", ResourceType = typeof(DataFieldLabels))]
public string Titulo { get; set; }
[Display(Name = "Model_Description", ResourceType = typeof(DataFieldLabels))]
public string Descripcion { get; set; }
}
上記の例では、フィールドの表示名を取得するためにリソース ファイルを使用していますが、よりハードコードされた方法で使用することもできます :)
別のフォルダーに新しいファイルを作成する必要があります。「ModelMD」としましょう。そうすれば、モデルが再生成されると、このファイルは変更されません。
重要:ファイルModelMD
は、元のモデルと同じ名前空間を使用する必要があります。ファイルを別のフォルダーに置くと、デフォルトで別の名前空間になります。