[英]Invalid column name - one-to-many relation - Entity Framework
我有一个只有两个外键的实体,但其中一个却出现异常:
无效的列名LookUpTypId
两者具有相同的代码,但是只有其中一个会导致异常
public class Term
{
public Term ()
{
RequestTimes = new HashSet<RequestTime>();
}
public decimal Id { get; set; }
public string AcademicYear { get; set; }
public string Semester { get; set; }
public int? NumberOfDays { get; set; }
public bool Active { get; set; }
public bool Reserve { get; set; }
public string Description { get; set; }
public virtual ICollection<RequestTime> RequestTimes { get; set; }
}
public class LookUp
{
public LookUp()
{
RequestTimes = new HashSet<RequestTime>();
}
public int Id { get; set; }
public string Group { get; set; }
public string Key { get; set; }
public string Value { get; set; }
public virtual ICollection<RequestTime> RequestTimes { get; set; }
}
public class RequestTime
{
public decimal Id { get; set; }
public DateTime FromTime { get; set; }
public DateTime ToTime { get; set; }
public int RequestMaxNumber { get; set; }
public virtual int LookUpTypId { get; set; }
public virtual decimal TermId { get; set; }
[ForeignKey("TermId")]
public virtual Term Term { get; set; }
[ForeignKey("LookUpTypId")]
public virtual LookUp LookUp { get; set; }
}
//relationship in RequestTimeMap
this.HasRequired<LookUp>(rt => rt.LookUp)
.WithMany(lk => lk.RequestTimes)
.HasForeignKey(rt => rt.LookUpTypId);
this.HasRequired<Term>(rt => rt.Term)
.WithMany(t => t.RequestTimes)
.HasForeignKey(rt => rt.TermId);
谢谢
据我了解,ForeignKey属性应在表示外键的属性中使用。
如果您有一个对象作为属性,则它应该在它的正上方...除非您还有一个单独的Id属性。 在这种情况下,应使用Id属性上方的属性。
[ForeignKey("LookUpTypId")]
public virtual int LookUpTypId { get; set; }
[ForeignKey("TermId")]
public virtual decimal TermId { get; set; }
public virtual Term Term { get; set; }
public virtual LookUp LookUp { get; set; }
而且...这个ID是十进制的吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.