首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表'Jobs‘上引入外键约束'FK_Jobs_AspNetUsers_UserId’可能会导致循环或多个级联路径

在表'Jobs‘上引入外键约束'FK_Jobs_AspNetUsers_UserId’可能会导致循环或多个级联路径
EN

Stack Overflow用户
提问于 2021-02-28 18:00:10
回答 1查看 44关注 0票数 0

我的项目中有以下实体,在尝试更新我的数据库(SQL Server)时遇到错误。我看了看堆栈溢出,发现有些人和我有完全相同的问题,但当我尝试修复他们的问题时,我仍然得到相同的错误。我已经解决这个错误有一段时间了,我似乎不知道到底是哪里出了问题。求求你,我想我可能需要一些帮助来弄清楚这个问题。

我的

实体:

代码语言:javascript
运行
复制
public class ApplicationUser : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Bio { get; set; }
    public string City { get; set; }
    public DateTime CreatedAt { get; set; }
    public virtual ICollection CreatedJobs { get; set; }
    public virtual ICollection AssignedJobs{ get; set; }
    public string Avatar { get; set; }
    public virtual ICollection Watching { get; set; }
    public string Tagline { get; set; }
    public Socials Socials { get; set; } 
    public virtual ICollection SkillSet { get; set; }
    public virtual ICollection Languages { get; set; }
}

我的

实体

代码语言:javascript
运行
复制
public class Job
{
    public Guid Id { get; set; }
    public virtual ICollection Photos { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    [Column(TypeName = "decimal(18,2)")] 
    public decimal InitialPrice { get; set; }
    public string UserId { get; set; }
    public virtual ApplicationUser User { get; set; }
    public string AssignedUserId { get; set; }
    public virtual ApplicationUser AssignedUser { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime DeliveryDate { get; set; }
    public virtual ICollection Bids { get; set; }
    public virtual ICollection Watching { get; set; }
    public string Address{ get; set; }
    public DeliveryTypes DeliveryType { get; set; }
    public string PostCode { get; set; }
    public int Views { get; set; }
    public Category Category { get; set; }
    public JobStatus JobStatus { get; set; }
}

我为我的表配置做了什么:

代码语言:javascript
运行
复制
modelBuilder.Entity()
        .HasMany(c => c.CreatedJobs)
        .WithOne(t => t.User)
        .HasForeignKey(t => t.UserId)
        .OnDelete(DeleteBehavior.NoAction);

modelBuilder.Entity()
        .HasMany(c => c.AssignedJobs)
        .WithOne(t => t.AssignedUser)
        .HasForeignKey(t => t.AssignedUserId)
        .OnDelete(DeleteBehavior.NoAction);

我试过所有的

值和值似乎都不起作用。

我还是弄错了-

Microsoft.EntityFrameworkCore.Database.Command

20102

无法执行DbCommand (28ms) [Parameters=[],CommandType='Text',CommandTimeout='30'] ALTER TABLE

工作

添加约束

FK

_

工作

_

AspNetUsers

_

UserId

外键(

UserId

)参考文献

AspNetUsers

ON DELETE CASCADE;无法执行DbCommand (28ms) [Parameters=[],CommandType='Text',CommandTimeout='30'] ALTER TABLE

工作

添加约束

FK

_

工作

_

AspNetUsers

_

UserId

外键(

UserId

)参考文献

AspNetUsers

ON DELETE CASCADE;Microsoft.Data.SqlClient.SqlException (0x80131904):引入外键约束'FK

_

工作

_

AspNetUsers

_

表'Jobs‘上的’UserId‘可能导致循环或多个ca scade路径。指定ON DELETE NO操作或ON UPDATE NO操作,或修改其他外键约束。无法创建约束或索引。请参阅前面的错误。

我知道以前有人问过这个问题。我已经尝试了人们建议的修复方法,但在我的情况下似乎不起作用,因此我觉得有必要再次询问。

EN

Stack Overflow用户

回答已采纳

发布于 2021-02-28 19:00:07

我认为它的迁移版本问题。您添加了一个迁移,然后添加了级联删除操作,因此在第一个操作上仍会中断,以实现这一点

运行Update-Database –TargetMigration:

然后

运行remove-migration name_of_bad_migration

现在添加包含新更改的新迁移

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66407830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档