我有以下数据对象:
public class Customer : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration<Customer>
{
public Customer ()
{
// this.HasRequired(a => a.EyeColorType).WithMany().HasForeignKey(a => a.EyeColorTypeID);
}
[Key]
public int ID { get; set; }
[Required]
[MaxLength(100)]
public string FirstName { get; set; }
[Required]
[MaxLength(100)]
public string LastName { get; set; }
[Required]
[ForeignKey("EyeColorTypeID")]
public EyeColorType EyeColorType { get; set; }
// public int EyeColorTypeID { get; set; }
}
}
我要做的是在生成的Customer属性上公开字段EyeColorTypeID
,并在DB中指定名称。
如果我删除了两个注释,它可以工作,但我想为此使用数据注释。像[ExposeForeignKey("EyeColorTypeID")]
之类的东西,让它自动发生。
这可能吗?我该怎么做呢?
答案 0 :(得分:3)
只需将其添加到模型中并使导航属性为虚拟(对于延迟加载):
public class Customer : //etc
{
//your stuff
[Required]
public int EyeColorTypeID {get; set;}
public virtual EyeColorType EyeColorType { get; set; }
}
EF的命名约定会将EyeColorTypeID
绑定到EyeColorType
导航属性。