EF 4.3.1を使用して、VSに既存のSQLテーブルからモデルを作成させます。DBテーブルは最終的なものではなく、変更される可能性があるため、モデルを更新すると上書きされるため、検証属性をモデルファイルに直接設定したくありません。
ここで説明するMetadataTypeAttributeアプローチを使用したい: データベースからモデルを更新する(データベースファースト)
そこで、このクラスを含む外部ファイルを作成しました。
using System.ComponentModel.DataAnnotations;
namespace PDB.Models
{
[MetadataTypeAttribute(typeof(t_scriptingMetadata))]
public partial class t_scripting
{
}
public class t_scriptingMetadata
{
[Required]
public int platform {get; set;}
[Required]
[StringLength(20)]
public string Projectname {get; set;}
}
}
残念ながら、VSで次のエラーが発生します。
- EdmEntityTypeAttribute属性が重複しています
- 重複するSerializable属性
- DataContractAttribute属性が重複しています
VSによって生成された私のモデルには、エラーメッセージに記載されている次の属性があります。
[EdmEntityTypeAttribute(NamespaceName="CAWI_STDMGTModel", Name="t_scripting")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class t_scripting : EntityObject
{
//...
}
私は何が間違っているのですか?