我在ASP.NET Core中有多个文件上传的问题 . 当我一次上传多个文件时,我从SQL Server数据库收到此错误:
SqlException:当IDENTITY_INSERT设置为OFF时,无法在表'photos'中为identity列插入显式值 .
我的代码:
public async Task<IActionResult> Create(Photos photos)
{
if (ModelState.IsValid)
{
var date = DateTime.UtcNow.AddHours(4);
var photoAddDate = photos.PhotoAddedData = date.ToString("yyyy-
MM-dd','HH:mm:ss", CultureInfo.InvariantCulture);
foreach (var file in photos.FormFile)
{
var filePath = Path.Combine(_hostingEnvironment.WebRootPath,
Path.GetFileName(file.FileName));
photos.PhotoPath = "/" + Path.GetFileName(file.FileName);
var stream = new FileStream(filePath, FileMode.Create);
await file.CopyToAsync(stream);
photos.PhotoPath = filePath;
_context.Photos.Add(photos);
await _context.SaveChangesAsync();
}
return RedirectToAction(nameof(Index));
}
然后我尝试使用此代码:
var transaction = _context.Database.BeginTransaction();
_context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT[dbo].[photos]ON;");
_context.Photos.Add(photos);
await _context.SaveChangesAsync();
_context.Database.ExecuteSqlCommand("SET IDENTITY_INSERT[dbo].[photos] OFF;");
transaction.Commit();
并得到另一个错误:
SqlException:当IDENTITY_INSERT设置为ON或复制用户插入NOT FOR REPLICATION标识列时,必须为表'photos'中的标识列指定显式值 .
谁能帮我这个?非常感谢你