Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 3个相互关联表的实体框架映射_C#_Entity Framework_Sql Server Ce_Relationship - Fatal编程技术网

C# 3个相互关联表的实体框架映射

C# 3个相互关联表的实体框架映射,c#,entity-framework,sql-server-ce,relationship,C#,Entity Framework,Sql Server Ce,Relationship,我的问题是: 我的数据库中有3个表 电影(电影列表) 身份证 原始 类型(包含所有可能类型的表格) 身份证 名字 相关类型(属于特定电影并指向特定类型的类型,因为电影可以有多个类型) 身份证 电影ID 根里德 这些关系如下所示: Movies.ID->relatedTyres.MovieID->tyres.ID 我有一个带有关联(导航属性)的模型。 我得到的: class Movie { public int ID { get; set; } public string

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

  • 电影(电影列表)

    • 身份证
    • 原始
  • 类型(包含所有可能类型的表格)

    • 身份证
    • 名字
  • 相关类型(属于特定电影并指向特定类型的类型,因为电影可以有多个类型)

    • 身份证
    • 电影ID
    • 根里德
  • 这些关系如下所示:

    Movies.ID->relatedTyres.MovieID->tyres.ID

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

    class Movie
    {
       public int ID { get; set; }
       public string OriginalTitle { get; set; }
       public ObjectCollection<RelatedGenre> RelatedGenres { get; set; }
    }
    
    class Movie
    {
       public int ID { get; set; }
       public string OriginalTitle { get; set; }
       public ObjectCollection<Genre> Genres { get; set; }
    }
    
    类电影
    {
    公共int ID{get;set;}
    公共字符串源代码{get;set;}
    public ObjectCollection RelatedTyres{get;set;}
    }
    
    在哪里

    类相关类型
    {
    公共int ID{get;set;}
    public int MovieID{get;set;}
    公共对象集合类型{get;set;}
    }
    
    我想要什么:

    class Movie
    {
       public int ID { get; set; }
       public string OriginalTitle { get; set; }
       public ObjectCollection<RelatedGenre> RelatedGenres { get; set; }
    }
    
    class Movie
    {
       public int ID { get; set; }
       public string OriginalTitle { get; set; }
       public ObjectCollection<Genre> Genres { get; set; }
    }
    
    类电影
    {
    公共int ID{get;set;}
    公共字符串源代码{get;set;}
    公共对象集合类型{get;set;}
    }
    
    正如你们所看到的,我想跳过这个相关类型数组中的数据&只需要得到具体类型数组

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

    您需要删除
    relatedTyres
    表中的
    ID
    列。多对多关系的联接表应仅包含参与实体的键


    EF将自动为关系建模,如您在最终代码示例中所示。

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


    EF将自动为关系建模,如您在最终代码示例中所示。

    所以您希望将两个表合并为一个实体,对吗?你有麻烦是因为它是一个集合吗?这个问题是完全相同的,答案是有效的。可能重复,因此您希望将两个表合并为一个实体,对吗?你有麻烦是因为它是一个集合吗?这个问题是完全相同的,答案是有效的。可能的重复只需确保
    {MovieID,GenreID}
    RelatedGenres
    表的主键,否则您的结构将允许重复关联(在这种情况下这不是很有用)。只需确保
    {MovieID,GenreID}
    RelatedGenres
    表的主键,或者,您的结构将允许重复的关联(在这种情况下这不是很有用)。