Asp.NetCore3.1WebApi尝试更新记录时会将其删除。
创始人
2024-09-17 10:00:56
0

这个问题可能是由于未正确配置DbContext引起的。在某些情况下,使用DbContext的默认行为会造成这种问题。为了解决这个问题,可以通过使用NoTracking()方法来设置DbContext以防止EF Core默认行为。 在这种情况下,可以在context.Update()方法之前使用NoTracking()方法。以下是示例代码:

using Microsoft.EntityFrameworkCore;

// ...

public async Task> UpdateItemAsync(int id, MyEntity entity)
{
    using (var context = new MyDbContext())
    {
        context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;

        var existingEntity = await context.MyEntities
            .FirstOrDefaultAsync(e => e.Id == id);

        if (existingEntity == null) { return NotFound(); }

        existingEntity.Name = entity.Name; // Update existing entity's properties

        context.Update(existingEntity); // Note: Call Update after modifying properties

        try
        {
            await context.SaveChangesAsync();
            return existingEntity;
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!MyEntityExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }
    }
}

这将确保EF Core不会跟踪实体,以防止在修改实体时发生意外行为。

相关内容

热门资讯

透视肯定(wepoke确实有挂... 透视肯定(wepoke确实有挂)fishpoker大菠萝外挂(详细辅助透明教程)原本有挂1)wepo...
微扑克ai机器人!wepoke... 微扑克ai机器人!wepoke软件透明挂,(wepOke)从来存在有挂(详细透视wpk教程)是一款可...
透视智能ai(wepokeai... 透视智能ai(wepokeai机器人)微扑克有挂(详细辅助扑克教程)都是是真的有挂,您好,wepok...
wepoke一定有挂!wepo... wepoke一定有挂!wepoke辅助机器人,(AAPoKER)一直有挂(详细透视辅助教程)科技教程...
透视好友房(wepoke真的有... 透视好友房(wepoke真的有挂)德扑ai智能机器人线上代打(详细辅助科技教程)好像是有挂是一款可以...
透视代打(微扑克游戏辅助器)w... 透视代打(微扑克游戏辅助器)wpk ai(详细辅助力荐教程)真是真的是有挂是一款可以让一直输的玩家,...
wepoke辅助技巧!德州之星... wepoke辅助技巧!德州之星辅助透视,(aapokEr)果然真的是有挂(详细辅助实用技巧);《WP...
透视模拟器(WePoKe透明挂... 透视模拟器(WePoKe透明挂)微扑克辅助钻石(详细辅助2025新版总结)总是是有挂1)WePoKe...
微扑克全自动机器人!wepok... 微扑克全自动机器人!wepoke ai,(wEPOKE)本然是有挂(详细透视插件教程)1、点击下载安...
透视透视挂(aapoker辅助... 透视透视挂(aapoker辅助工具存在)aapoker软件有猫腻吗(详细辅助wpk教程)一贯是有挂a...