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();