1
我有以下post函数,它基本上只需要一个多部分文章(fileDataModel.File是一个IFormFile对象),并将文件元数据保存到数据库,并将文件保存到硬盘驾驶。ASP.NET Core 2.0无法返回EF触摸的对象
[HttpPost("filedata")]
public async Task<IActionResult> PostFileData([FromForm] FileDataBindingModel fileDataModel)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var contactData = await _context.ContactData.FirstOrDefaultAsync(e => e.Id == fileDataModel.ContactId);
if (contactData == null)
{
ModelState.AddModelError("ContactId", "No such contact exists.");
return BadRequest(ModelState);
}
FileData fileData = new FileData
{
ContactId = fileDataModel.ContactId,
Contact = contactData
};
var fileName = fileDataModel.File.FileName;
var FileStorageDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "filestorage");
Directory.CreateDirectory(FileStorageDir);
var FileStoragePath = FileStorageDir + "\\" + DateTimeOffset.UtcNow.ToUnixTimeSeconds() + fileName;
using (FileStream fStream = new FileStream(FileStoragePath, FileMode.OpenOrCreate)) {
await fileDataModel.File.CopyToAsync(fStream);
}
fileData.FilePath = FileStoragePath;
fileData.OriginalFileName = fileName;
fileData.Id = Guid.NewGuid();
_context.FileData.Add(fileData);
await _context.SaveChangesAsync();
return Ok(fileData);
}
现在,这个功能能正常工作,确实它应该是什么,但未能返回,如果在确定返回的对象()已经EF在某些时候(所以特地,FILEDATA和联络资料)被触及。邮递员没有收到回复。如果我输入任何其他对象,它会返回对象就好。我似乎无法找到任何障碍,因为我没有任何例外或任何事情,只是无法返回。任何帮助将不胜感激。
自从我写这个问题以来,这部分项目已被正式废弃。这意味着我不得不在我自己的时间回到这个问题上,这个问题最近很少,但是谢谢你,我会尝试你的建议。 – JasonX