C# 引入外键约束';FK_dbo.OrderDetails_dbo.Order_OrderId';在桌上';订单详情';可能导致
我从PMC收到以下错误消息: 在表“OrderDetails”上引入外键约束“FK_dbo.OrderDetails_dbo.Order_OrderId”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束。 无法创建约束。请参阅前面的错误 我在这里找到了一个帖子,上面有一个被接受的答案,但它对我不起作用 这些是我的桌子:C# 引入外键约束';FK_dbo.OrderDetails_dbo.Order_OrderId';在桌上';订单详情';可能导致,c#,ef-code-first,entity-framework-6,cascading-deletes,C#,Ef Code First,Entity Framework 6,Cascading Deletes,我从PMC收到以下错误消息: 在表“OrderDetails”上引入外键约束“FK_dbo.OrderDetails_dbo.Order_OrderId”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束。 无法创建约束。请参阅前面的错误 我在这里找到了一个帖子,上面有一个被接受的答案,但它对我不起作用 这些是我的桌子: [Table("Order")] public class Order { [DatabaseGeneratedAtt
[Table("Order")]
public class Order
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key]
public int Id { get; set; }
[Required]
public string UserId { get; set; }
public virtual List<OrderDetails> OrderDetails { get; set; }
[ForeignKey("UserId")]
public virtual ApplicationUser User { get; set; }
}
[Table("OrderDetails")]
public class OrderDetails
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key]
public int Id { get; set; }
[Required]
public int OrderId { get; set; }
[ForeignKey("OrderId")]
public virtual Order Order { get; set; }
}
如果OrderDetails
被删除,我不希望Order
被删除。但另一种方式对我来说没问题
那么,我尝试的有什么问题吗?使用。WithMany()
没有参数在这里是错误的。因为Order.OrderDetails
表示必须使用的关系的反向导航属性
.WithMany(o => o.OrderDetails)
这里使用不带参数的.WithMany()
是错误的。因为Order.OrderDetails
表示必须使用的关系的反向导航属性
.WithMany(o => o.OrderDetails)
这里使用不带参数的.WithMany()
是错误的。因为Order.OrderDetails
表示必须使用的关系的反向导航属性
.WithMany(o => o.OrderDetails)
这里使用不带参数的.WithMany()
是错误的。因为Order.OrderDetails
表示必须使用的关系的反向导航属性
.WithMany(o => o.OrderDetails)
我发现了问题
我一直在运行命令updatedatabase
,该命令执行最后生成的迁移文件
我删除了我创建的最后一个迁移文件,并再次运行命令Add migration
,该命令使用我最新的modelBuilder.Entity()…
(FluentApi
)代码更改生成了一个新文件
然后运行命令updatedatabase
,它成功了
所以我不知道的是每次你在
protectedoverride void OnModelCreating(DbModelBuilder modelBuilder){…}
您需要再次执行添加迁移文件名。我发现了问题
我一直在运行命令updatedatabase
,该命令执行最后生成的迁移文件
我删除了我创建的最后一个迁移文件,并再次运行命令Add migration
,该命令使用我最新的modelBuilder.Entity()…
(FluentApi
)代码更改生成了一个新文件
然后运行命令updatedatabase
,它成功了
所以我不知道的是每次你在
protectedoverride void OnModelCreating(DbModelBuilder modelBuilder){…}
您需要再次执行添加迁移文件名。我发现了问题
我一直在运行命令updatedatabase
,该命令执行最后生成的迁移文件
我删除了我创建的最后一个迁移文件,并再次运行命令Add migration
,该命令使用我最新的modelBuilder.Entity()…
(FluentApi
)代码更改生成了一个新文件
然后运行命令updatedatabase
,它成功了
所以我不知道的是每次你在
protectedoverride void OnModelCreating(DbModelBuilder modelBuilder){…}
您需要再次执行添加迁移文件名。我发现了问题
我一直在运行命令updatedatabase
,该命令执行最后生成的迁移文件
我删除了我创建的最后一个迁移文件,并再次运行命令Add migration
,该命令使用我最新的modelBuilder.Entity()…
(FluentApi
)代码更改生成了一个新文件
然后运行命令updatedatabase
,它成功了
所以我不知道的是每次你在
protectedoverride void OnModelCreating(DbModelBuilder modelBuilder){…}
您需要再次执行
addmigrationfilename
。我也尝试过,但它给出了完全相同的错误消息。然后我尝试了没有参数的方法。我也尝试了这个方法,但它给出了完全相同的错误消息。然后我尝试了没有参数的方法。我也尝试了这个方法,但它给出了完全相同的错误消息。然后我尝试了没有参数的方法。我也尝试了这个方法,但它给出了完全相同的错误消息。然后我试着没有参数。