2017-10-18 116 views
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和聯絡資料)被觸及。郵遞員沒有收到回覆。如果我輸入任何其他對象,它會返回對象就好。我似乎無法找到任何障礙,因爲我沒有任何例外或任何事情,只是無法返回。任何幫助將不勝感激。

回答

0

也許嘗試測試它與一個非異步版本只是爲了看看它是否回饋錯誤?

+0

自從我寫這個問題以來,這部分項目已被正式廢棄。這意味着我不得不在我自己的時間回到這個問題上,這個問題最近很少,但是謝謝你,我會嘗試你的建議。 – JasonX