我有两个类对应数据库映射,
Genre
public class Genre
{
public int GenreId { get; set; }
[Required(ErrorMessage = "An Genre Title is required")]
[StringLength(128)]
public string GenreName { get; set; }
public virtual List<Field> Fields { get; set; }
}
和Alumb类
public class Alumb
{
public int AlumbId { get; set; }
[Required(ErrorMessage = "An FieldName Title is required")]
[StringLength(128)]
public string AlumbName { get; set; }
[Required(ErrorMessage = "An Genre Title is required")]
[StringLength(128)]
public Genre Genre { get; set; }
当我需要获取Alumb数据的时候
public IList<Alumb> GetAlumbs()
{
return db.Alumb.ToList();
}
运行时提示
public virtual List<Field> Fields { get; set; }
这边打错了,应该是
public virtualList<Alumb>Alumbs{ get; set; }
modelBuilder.Entity<Alumb>()
.HasRequired(p => p.Genre)
.WithMany(a => a.Alumb)
.HasForeignKey(p => p.GenreId);
public virtual List<Field> Fields { get; set; }
这里的Filed是什么?
你的Genre跟Alumb是一对多关系,所以在多的一端应该把一的做为一个属性,所以你的实体定义要做一些改进,建议在Alumb中加一个外键:
public class Alumb
{
public int AlumbId { get; set; }
[ForeignKey("Genre")]
public int GenreId { get; set; }
[Required(ErrorMessage = "An FieldName Title is required")]
[StringLength(128)]
public string AlumbName { get; set; }
public Genre Genre { get; set; }
}
@artwl: 非常感谢,虽然我没有按照你用标记的方法,我是通过创建模型来的,但已经解决问题了。
@charje: 上面的定义跟你的配置效果是一样的
@artwl: 哈哈,是我想在model里主要用于验证的标记。