删除具有主键的记录的问题

Hui Liu-MSFT 48,531 信誉分 Microsoft 供应商
2024-05-30T07:35:37.74+00:00

你好;

有没有办法通过主键删除记录?

是的,我知道我可以做到以下几点:

using (var context = new MyDbContext())
{
    var entity = context.MyEntity.Find(id);
    context.MyEntity.Remove(entity);
    context.SaveChanges();
}

但我宁愿不产生先加载记录的不必要的开销。

我知道这个问题,但它已经有 11 年的历史了,我希望从那时起就有一个解决方案。

Note:此问题总结整理于:Delete a record with the primary key

Entity Framework Core
Entity Framework Core
实体框架数据访问技术的轻量型、可扩展、开源、跨平台版本。
49 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 45,006 信誉分 Microsoft 供应商
    2024-05-30T07:39:45.3133333+00:00

    欢迎来到 Microsoft Q&A,如果要基于主键删除记录,不想花费不必要的开销,建议使用 SQL RAW 方法删除记录,如下所示:

    using (var context = new YourDbContext())
    {
        var sql = "DELETE FROM YourTable WHERE Id = {0}";
        context.Database.ExecuteSqlRaw(sql, yourEntityId);
    }
    
    

    上面的代码删除 sql server 中的记录,而不加载实体类型。


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。