我让 VS 使用 EF 4.3.1 从现有 SQL 表创建我的模型。因为数据库表不是最终的并且可能会更改,所以我不想将验证属性直接设置到模型文件中,因为当我更新模型时它会被覆盖。
我想使用此处描述的 MetadataTypeAttribute 方法: Update Model From Database (Database First)
所以我创建了一个包含这个类的外部文件:
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 属性
- 重复的可序列化属性
- 重复的 DataContractAttribute 属性
VS 生成的我的模型具有错误消息提到的这些属性:
[EdmEntityTypeAttribute(NamespaceName="CAWI_STDMGTModel", Name="t_scripting")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class t_scripting : EntityObject
{
//...
}
我究竟做错了什么?