我已经看到了这个答案,并且正在使用它所建议的解决方案,但仍然得到相同的错误。
我有一个对用户表有外键约束的代理表,这是代理表:
CREATE TABLE agency (
AgencyId BIGINT NOT NULL AUTO_INCREMENT,
UserId BIGINT NOT NULL,
AgencyName VARCHAR(150) NOT NULL,
CONSTRAINT PK_Agency PRIMARY KEY(AgencyId),
CONSTRAINT FK_Agency_User FOREIGN KEY (UserId) REFERENCES user (UserId) ON DELETE RESTRICT ON UPDATE RESTRICT
);
这是我的代理
实体:
[Table("agency")]
public class Agency
{
public long AgencyId { get; set; }
[Required]
public long UserId { get; set; }
[ForeignKey("UserId")]
public User User { get; set; } // <-- user Entity
[Required]
[StringLength(GlobalConstants.MaxLengthForLongName)]
public string AgencyName { get; set; }
}
现在,我想为现有用户添加一个新代理:
public void AddOrUpdateAsAdminUser(Agency agency)
{
if (agency.UserContact.UserId <= 0)
{
throw new Exception($"User: {agency.User.Email} does not exists");
}
if (agency.AgencyId > 0)
{
// update existing agency
_context.Agency.Attach(agency);
_context.Entry(agency).State = EntityState.Modified;
_context.Entry(agency).Property(x => x.UserId).IsModified = false;
_context.Entry(agency.User).State = EntityState.Detached; // <-- don't update User
}
else
{
// add new agency: exception is thrown here
_context.Agency.Add(agency);
_context.Entry(agency.User).State = EntityState.Detached; // <-- Don't update User
}
_context.SaveChanges();
}
<代码>\u上下文。SaveChanges() 行引发以下异常:
"无法添加或更新子行:外键约束失败(\"dbName\".\"agent\", CONSTRAINT\"FK_Agency_User\"FOREIGN KEY(\"UserId\")REFERENCES\"user\"(\"UserId\"))"
系统异常{MySql.Data.MySqlClient.MySqlException}
问题在于我的映射逻辑,当将代理视图模型映射到代理时,我只是将用户视图模型映射到用户。。。这意味着当我想保存代理时,UserId是0(未映射)。
[Table("agency")]
public class Agency
{
public long AgencyId { get; set; }
[Required]
public long UserId { get; set; } // <-- I was NOT mapping UserId
[ForeignKey("UserId")]
public User User { get; set; } // <-- I was mapping User
[Required]
[StringLength(GlobalConstants.MaxLengthForLongName)]
public string AgencyName { get; set; }
}
您会收到此错误,因为您正在尝试向代理添加/更新一行,该行没有基于当前存储在表1中的值的UserID字段的有效值。
com.mysql.jdbc.exceptions.jdbc4.mysqlintegrityConstraintViolationException:无法添加或更新子行:外键约束失败(.,constraint外键()引用()
com.mysql.jdbc.exceptions.jdbc4、无法添加或更新子行:外键约束失败(。,CONSTRAINTFOREIGN KEY()REFERENCES()) 艺术家班 和RecordLabel类
我有两个表,当我试图保存通常的实体,扔 组织。springframework。刀。DataIntegrityViolationException:无法添加或更新子行:外键约束失败(,约束外键(,)引用(,));SQL[n/a];约束[null];嵌套的异常是org。冬眠例外ConstraintViolationException:无法添加或更新子行:外键约束失败(,constraint外键(,)参
问题内容: 当我不想相互连接两个表时,我得到以下消息:#1452-无法添加或更新子行:外键约束失败....我想从facebook_users表格中连接oauth_uid2(主键)外键为oauth_uid2的错误列表。但是我总是得到这个信息。我已经清除了数据,但没有任何效果。在表users_facebook中,我还有1条记录。 1452-无法添加或更新子行:外键约束失败(。,在更新级联上删除级联时使
我知道在这个问题上有很多问题,但我一直未能解决。我正在做一个图形界面来添加/删除员工和管理缺勤。 我一直在阅读和测试那些建议stackOverflow1,但我不能更改数据库,因为它已经由我们的教授给出了。 来自外键的值已经在表“service”中,我在代码中称之为“department”。 我有以下数据库(对于我得到问题的表): 在应用程序中,您可以看到这里和下面的图片,我必须修改员工数据,并将其
当我不想将两个表相互连接时,我收到消息:#1452 - 无法添加或更新子行:外键约束失败....我想使用外键oauth_uid2将oauth_uid2(主键)从facebook_users选项卡连接到错误选项卡。但我总是收到这个信息。我已经清除了我的数据,但没有任何效果。同样在表中users_facebook我有 1 条记录。 1452-无法添加或更新子行:外键约束失败(., CONSTRAINT