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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.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# 如何在EF 6中设置索引和外键 更新_C#_Entity Framework_Entity Framework 6 - Fatal编程技术网

C# 如何在EF 6中设置索引和外键 更新

C# 如何在EF 6中设置索引和外键 更新,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,我删除了表格并添加了带有建议的干净表格,现在看起来不错,所以请查看更新的内容。 以下错误ALTER TABLE ALTER COLUMN失败,因为表“Region”中不存在列“Id”。在尝试定义表约束时产生 我假设这条语句,RenameColumn(表:“dbo.Region”,名称:“Id”,新名称:“OrganizationId”),在迁移脚本(下面)中是根,但我不明白为什么它要将Region.Id(PK)重命名为OrganizationId…我猜是因为OrganizationId被多次使用

我删除了表格并添加了带有建议的干净表格,现在看起来不错,所以请查看更新的内容。

以下错误
ALTER TABLE ALTER COLUMN失败,因为表“Region”中不存在列“Id”。
在尝试定义表约束时产生

我假设这条语句,
RenameColumn(表:“dbo.Region”,名称:“Id”,新名称:“OrganizationId”),在迁移脚本(下面)中是根,但我不明白为什么它要将
Region.Id
(PK)重命名为
OrganizationId
…我猜是因为OrganizationId被多次使用,而且它正在破坏神奇的ef配置

这是源表(具有正确的约束):

模型配置:

        modelBuilder.Entity<Region>()
            .HasKey(k => k.Id);

        modelBuilder.Entity<Region>()
            .Property(i => i.Id)
            .HasColumnAnnotation(
                IndexAnnotation.AnnotationName,
                new IndexAnnotation(new IndexAttribute("uqc_Region_OrganizationID", 1)));

        modelBuilder.Entity<Region>()
            .Property(o => o.OrganizationId)
            .HasColumnAnnotation(
                IndexAnnotation.AnnotationName,
                new IndexAnnotation(new IndexAttribute("uqc_Region_OrganizationID", 2)));

        modelBuilder.Entity<Region>()
            .HasRequired(o => o.Organization)
            .WithMany()
            .HasForeignKey(o => o.OrganizationId);
我不知道为什么

但它应该是区域和组织之间的正确地图

        modelBuilder.Entity<Region>()
            .HasRequired(me => me.Organization)
            .WithMany()
            .HasForeignKey(me => me.OrganizationId); //FK property
modelBuilder.Entity()
.HasRequired(me=>me.Organization)
.有很多
.HasForeignKey(me=>me.OrganizationId)//FK属性
我不知道为什么

但它应该是区域和组织之间的正确地图

        modelBuilder.Entity<Region>()
            .HasRequired(me => me.Organization)
            .WithMany()
            .HasForeignKey(me => me.OrganizationId); //FK property
modelBuilder.Entity()
.HasRequired(me=>me.Organization)
.有很多
.HasForeignKey(me=>me.OrganizationId)//FK属性

看起来此代码正在生成附加外键,将其视为自引用外键

modelBuilder.Entity<Region>()
        .HasRequired(p => p.ParentRegion)
        .WithRequiredDependent();
modelBuilder.Entity()
.HasRequired(p=>p.ParentRegion)
.WithRequiredDependent();

看起来此代码正在生成附加外键,将其视为自引用外键

modelBuilder.Entity<Region>()
        .HasRequired(p => p.ParentRegion)
        .WithRequiredDependent();
modelBuilder.Entity()
.HasRequired(p=>p.ParentRegion)
.WithRequiredDependent();

发布相关实体类会有所帮助。据我所见,关系的多重性看起来不正确。@IvanStoev我添加了实体类并尝试了另一个建议发布相关实体类会有所帮助。据我所见,关系的多重性看起来不正确。@IvanStoev我添加了实体类并尝试了另一个recommendation@Don_Sartain谢谢,这有助于解决问题,但这是多种因素共同作用的结果。如果我愿意,我也会把你的答案记下来could@WillLopez别担心。我不确定你问的是哪一部分,所以我回答了卡洛斯没有回答的部分。@Don_Sartain感谢这有帮助,但这是多种因素共同作用的结果。如果我愿意,我也会把你的答案记下来could@WillLopez别担心。我不确定你问的是哪一部分,所以我回答了卡洛斯没有回答的部分。
modelBuilder.Entity<Region>()
        .HasRequired(p => p.ParentRegion)
        .WithRequiredDependent();