我有一个与类别有关系的书签,因此每次更新现有书签时,都应该创建或更新一个新类别(如果它已经存在)。当我更新现有书签时,出现此错误:
无法跟踪实体类型“Bookmark”的实例,因为已跟踪具有相同键值 {'ID'} 的另一个实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。考虑使用“DbContextOptionsBuilder.EnableSensitiveDataLogging”来查看冲突的键值。
我的Entity看起来像这样:
public class Bookmark
{
[Key]
public int ID { get; set; }
[StringLength(maximumLength: 500)]
public string URL { get; set; }
public string ShortDescription { get; set; }
public int? CategoryId { get; set; }
public virtual Category Category { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime CreateDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的Update控制器看起来像这样:
public async Task<IActionResult> Edit(BookmarkViewModel request)
{
var bookmark = _mapper.Map<Bookmark>(request);
var exists = await _bookmarkService.GetBookmark(bookmark.ID); …Run Code Online (Sandbox Code Playgroud)