小编Ale*_*ski的帖子

无法跟踪实体类型“Bookmark”的实例,因为已跟踪具有相同键值 {'ID'} 的另一个实例

我有一个与类别有关系的书签,因此每次更新现有书签时,都应该创建或更新一个新类别(如果它已经存在)。当我更新现有书签时,出现此错误:

无法跟踪实体类型“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)

c# asp.net-mvc exception entity-framework-core .net-core

3
推荐指数
1
解决办法
1万
查看次数