繁体   English   中英

无效的列名-一对多关系-实体框架

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM