モデルを拡張することで、必要なことを実現できます。EF が次のエンティティ クラスを生成したとします。
namespace YourSolution
{
using System;
using System.Collections.Generic;
public partial class News
{
public int ID { get; set; }
public string Title { get; set; }
public int UserID { get; set; }
public virtual UserProfile User{ get; set; }
}
}
また、データの注釈と属性を保持するためにいくつかの回避策を実行する必要があります。したがって、次の手順に従います。
最初に、次のように 2 つのクラスをどこかに (好きな場所に) 追加Models
します。
namespace YourSolution
{
[MetadataType(typeof(NewsAttribs))]
public partial class News
{
// leave it empty.
}
public class NewsAttribs
{
// Your attribs will come here.
}
}
次に、必要なプロパティと属性を 2 番目のクラスに追加します (NewsAttribs
ここ)。:
public class NewsAttrib
{
[Display(Name = "News title")]
[Required(ErrorMessage = "Please enter the news title.")]
public string Title { get; set; }
// and other properties you want...
}
ノート:
1) 生成されたエンティティークラスとあなたのクラスの名前空間は同じでなければなりません- here YourSolution
.
2) 最初のクラスは である必要がpartial
あり、その名前はEF 生成クラスと同じでなければなりません。
これを通過すると、属性が失われることはありません...