【问题标题】:one to many relations between 3 tables with entity code first3个表之间的一对多关系,首先是实体代码
【发布时间】:2016-10-13 18:20:39
【问题描述】:

假设我有 3 个表格,例如 city、tours 和 tourdetails

我想存储有关旅游中包含的城市和每个城市的访问时长的数据。每次旅行可能有几个城市。

这是我的代码

public class TourDetails 
{
    [Required, Key]
    public int ID { get; set; }
    [Required]
    public int Duration { get; set; }

    [Required]
    public virtual City City { get; set; }
    [Required]
    public virtual Tour TourID { get; set; }
}

public class Tour
{
    [Required, Key, MaxLength(5), MinLength(5)]
    public string ID { get; set; }
    [Required, MaxLength(20)]
    public string TourName { get; set; }
    [Required]
    public int TotalDuration { get; set; }
    [Required]
    public decimal Price { get; set; }

    [Required]
    public virtual ICollection<TourDetails> TourDetails { get; set; }
}

public class City
{
    [Required, Key]
    public int ID { get; set; }
    [Required, MaxLength(20)]
    public string CityName { get; set; }

    [Required]
    public virtual ICollection<TourDetails> TourDetails { get; set; }
}

我的问题是,当我编译代码时,Entity Framework 根本没有在图表中显示 TourDetails 表(表正在添加到基础中) 我对 Entity Framewrok 很陌生,只是想学习,所以这可能是一个愚蠢的问题,但我希望我能得到正确的答案。


问题已解决,问题出在我的 sql manager studio 上,而不是代码,非常感谢那些试图提供帮助的人并为您的时间感到抱歉:)

【问题讨论】:

  • 你在说什么图表?
  • sql manager studio中的数据库图,显示表之间的关系
  • 尝试了您的模型并创建了外键关系。一切看起来都不错(除了Tour TourID 属性名称,但它无关紧要)。
  • 是的,刚刚重新启动了 sql manager studio,它也对我有用,猜测问题出在它与代码无关 :)

标签: c# entity-framework tsql


【解决方案1】:

您缺少实体的 ID(并且其中一个属性的名称错误):

public int CityId { get; set;}
public virtual City City { get; set; }
public int TourId { get; set; }
public virtual Tour Tour { get; set; }

Entity Framework 现在应该检测到关系

【讨论】:

  • 感谢您的回答。我有 ID,他们只是简单地称为 ID 而不是 Cityid,而且旅游 ID 是字符串,这可能是个问题吗?我固定了姓氏,但仅此一项并没有帮助:)
  • 哦,抱歉,没看到string 那里,我的错。在这个thread 中,答案说,你必须使用[DatabaseGenerated(DatabaseGeneratedOption.None)] 作为string 主键。判断这是否有帮助
  • 不幸的是,它没有帮助,但还是感谢您提供有用的信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 1970-01-01
相关资源
最近更新 更多