【发布时间】:2021-09-20 07:29:24
【问题描述】:
我有 2 张桌子。 Tutor 和 User。 一位用户将拥有一位导师(一对一的关系),这就是这种关系。
我得到了这个例外:
保存上下文类型“App.inf.dt.DatabaseContext”的更改时,数据库中发生异常。
Microsoft.EntityFrameworkCore.DbUpdateException:更新条目时出错。有关详细信息,请参阅内部异常。
Microsoft.Data.SqlClient.SqlException (0x80131904):INSERT 语句与 FOREIGN KEY 约束“FK_Tutors_Users_UserId”冲突。冲突发生在数据库“PIMP22”、表“dbo.Users”、列“Id”中。
在 Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔型 breakConnection,Action
1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)
在 Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
我的实体配置如下所示:
builder.HasOne(c => c.Tutor)
.WithOne(c => c.User)
.HasForeignKey<Tutor>(cc => cc.UserId)
.OnDelete(DeleteBehavior.Restrict);
我想知道我的实体配置是否有任何问题?有人可以帮我解决这个问题吗?
注意:我有一个User 记录已经保存在数据库中。 ID 是 1。
更新
List<User> u = new List<User>
{
Name= "User 1",
};
databaseContext.Users.AddRange(u);
List<Tutor> t = new List<Tutor>
{
DisplayName = "tut1",
UserId = 1
};
databaseContext.Tutors.AddRange(t);
await databaseContext.SaveChangesAsync();
【问题讨论】:
-
向我们展示导致此异常的代码!
-
我已经添加了相关的代码块。如果您需要任何其他信息,请告诉我。谢谢。
-
你能告诉我们
User和Tutor具有导航属性的类吗? -
好吧,您在数据库中没有 UserId = 1 的用户。这个
List<User> u有什么用?另外,你最好也展示一下课程。并给出EF核心版本。
标签: c# .net-core entity-framework-core