我的项目中有以下实体,在尝试更新我的数据库(SQL Server)时遇到错误。我看了看堆栈溢出,发现有些人和我有完全相同的问题,但当我尝试修复他们的问题时,我仍然得到相同的错误。我已经解决这个错误有一段时间了,我似乎不知道到底是哪里出了问题。求求你,我想我可能需要一些帮助来弄清楚这个问题。
我的
实体:
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; }
}我的
实体
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; }
}我为我的表配置做了什么:
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操作,或修改其他外键约束。无法创建约束或索引。请参阅前面的错误。
我知道以前有人问过这个问题。我已经尝试了人们建议的修复方法,但在我的情况下似乎不起作用,因此我觉得有必要再次询问。
发布于 2021-02-28 19:00:07
我认为它的迁移版本问题。您添加了一个迁移,然后添加了级联删除操作,因此在第一个操作上仍会中断,以实现这一点
运行Update-Database –TargetMigration:
然后
运行remove-migration name_of_bad_migration
现在添加包含新更改的新迁移
https://stackoverflow.com/questions/66407830
复制相似问题