【问题标题】:cannot access foreign key in table created by entity frameork无法访问实体框架创建的表中的外键
【发布时间】:2016-07-13 02:14:07
【问题描述】:

我正在使用 mvc 4.5 并尝试创建活动页面,每个活动都会有活动参与者列表;我添加类 MyEvent 和类参加者

public class MyEvent
{
    public MyEvent()
    { 
       Attendees = new List<Attendee>();              
    }

    [Required]            
    public int Id { get; set; }

    [Required]
    [Display(Name = "Date")]
    public DateTime EventDate { get; set; }

    [Required]
    [Display(Name = "Time")] 
    public string EventTime{ get;set;}

    [Required]
    [Display(Name = "Event Name")] 
    public string Name{ get; set; }

    [Required]
    [Display(Name = "Event Place")] 
    public string Address { get; set; }

    public List<Attendee> Attendees { get; set; }

    [Required]
    [Display(Name = "Description")] 
    public string Description{ get; set; }

    [Required]
    [Display(Name = "Host")] 
    public string Host { get; set; }
}

public class Attendee
{
    public int Id { get; set; }
    public string Name { get; set; }

    public Attendee(String name)
    {
        this.Name = name;
    }        
}

EF 创建了 MyEvents 和 Attendees 表,并且 Attendees 有 Fk MyEvent_Id 指向 MyEvent 表的 Id;问题我无法在代码中访问 MyEvent_Id 而我可以访问其余列(Id 和 Name) 另一个问题是 MyEvent 实体的参加者列表似乎一遍又一遍地更新,并且只包含最后一个 attndee;我希望能够让与活动相关联的所有参与者显示所有活动参与者

【问题讨论】:

    标签: asp.net-mvc entity-framework-6


    【解决方案1】:

    听起来您正试图从参加者访问 MyEvent 对象,但是您缺少用于访问事件对象的导航属性。您的参加者课程应如下所示

    public class Attendee
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int MyEventID { get; set; }
    
        public virtual MyEvent MyEvent { get; set; }
    
        public Attendee(String name)
        {
            this.Name = name;
        }        
    }
    

    你的第二个问题对我来说不是很清楚。实体框架通常仅在您实际访问实体时才从数据库中读取参加者。您应该能够毫无问题地遍历与会者列表。

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2013-06-29
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多