Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# INSERT语句与外键约束ef core冲突_C#_Sql_Sql Server_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# INSERT语句与外键约束ef core冲突

C# INSERT语句与外键约束ef core冲突,c#,sql,sql-server,asp.net-core,entity-framework-core,C#,Sql,Sql Server,Asp.net Core,Entity Framework Core,我试图将新记录插入上载表,但在调用“保存更改”时出错: SqlException:INSERT语句与外键约束“FK_Uploads_AspNetUsers_UserId”冲突。冲突发生在数据库“FileSharingDb”、表“dbo.AspNetUsers”、列“Id”中。 声明已终止 这是上传代码: [HttpPost] 公共异步任务创建(InputUpload模型) { if(ModelState.IsValid) { var newName=Guid.NewGuid().ToString

我试图将新记录插入上载表,但在调用“保存更改”时出错:

SqlException:INSERT语句与外键约束“FK_Uploads_AspNetUsers_UserId”冲突。冲突发生在数据库“FileSharingDb”、表“dbo.AspNetUsers”、列“Id”中。 声明已终止

这是上传代码:

[HttpPost]
公共异步任务创建(InputUpload模型)
{
if(ModelState.IsValid)
{
var newName=Guid.NewGuid().ToString();
var extension=Path.GetExtension(model.File.FileName);
var fileName=string.Concat(新名称,扩展名);
var root=env.WebRootPath;
var path=path.Combine(根,“上载”,文件名);
使用(var fs=System.IO.File.Create(path))
{
wait model.File.CopyToAsync(fs);
}
等待db.Uploads.AddAsync(
新上传
{
FileName=FileName,
ContentType=model.File.ContentType,
Size=model.File.Length.ToString(),
UserId=User.FindFirst(ClaimTypes.NameIdentifier).ToString()
});
db.SaveChanges();
返回操作(“索引”);
}
返回视图();
}

您应该添加您正在使用的模型,以便我们可以轻松查看表之间的关系。但这意味着您正试图使用fk表中不存在的外键将值插入数据库。您正试图使用AspNetUser.UserId将值插入Uploads表中,AspNetUser.UserId为null或根本不存在于AspNetUsers表中。正如xtryingx所说,最好共享相关模型,这样我们才能知道他们之间的关系。此外,为了保存相关数据,我们可以使用navigation属性。您可以参考以下文章:、和。