【问题标题】:Entity Framework mapping of 3 tables with relationship between each other3个表的实体框架映射,相互之间有关系
【发布时间】:2012-02-21 14:37:42
【问题描述】:

这是我的问题: 我的数据库中有 3 个表

  1. 电影(电影列表)

    • 身份证
    • 原标题 ...
  2. 流派(包含所有可能流派的表格)

    • 身份证
    • 姓名
  3. RelatedGenres(属于特定电影并指向特定流派的流派,因为电影可以有多个流派)

    • 身份证
    • 电影 ID
    • 类型 ID

关系如下:

Movies.ID -> RelatedGenres.MovieID -> Genres.ID

我有一个带有关联(导航属性)的模型。 我得到了什么:

class Movie
{
   public int ID { get; set; }
   public string OriginalTitle { get; set; }
   public ObjectCollection<RelatedGenre> RelatedGenres { get; set; }
}

在哪里

class RelatedGenre
{
   public int ID { get; set; }
   public int MovieID { get; set; }
   public ObjectCollection<Genre> Genres { get; set; }
}

我想要什么:

class Movie
{
   public int ID { get; set; }
   public string OriginalTitle { get; set; }
   public ObjectCollection<Genre> Genres { get; set; }
}

如您所见,我想跳过这个相关流派数组中的数据,只获取具体流派数组...

我怎样才能做到这一点? 提前致谢 =)

【问题讨论】:

  • 所以您想将两个表合并为一个实体,对吗?你有麻烦因为它是一个集合吗?
  • 这个问题一模一样,答案有效。 Entity Framework many-to-many question 的可能重复项

标签: c# entity-framework sql-server-ce relationship


【解决方案1】:

您需要删除RelatedGenres 表的ID 列。多对多关系的连接表应该只包含参与实体的键。

EF 将自动为您在最终代码示例中显示的关系建模。

【讨论】:

  • 只要确保您将{MovieID, GenreID} 设为RelatedGenres 表的主键,否则您的结构将允许重复关联(在这种情况下这 没有用处)。
猜你喜欢
  • 1970-01-01
  • 2013-11-26
  • 2013-01-17
  • 2019-03-27
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多