Entity framework 如何在实体框架中删除列中具有相同值的记录?

Entity framework 如何在实体框架中删除列中具有相同值的记录?,entity-framework,Entity Framework,我在数据库中有一个表,其中有一些列。我在我的存储库类中从该表中获得一些记录的列表。因此,我将有如下内容: 现在,我想删除特殊列(此处为“代码”列)中具有相同值的记录,如下所示: 我的意思是,我只希望有一个记录具有相同的代码列值。 如何在实体框架中实现这一点?让您有两个表表1和表2,并且希望删除所有记录 从表1中,它们在表2中具有相同的代码编号。 这是您的要求 1.首先,您必须获得表2中代码列的所有值 var x=db.table2.Select(p=>p.code)然后您必须将其与表1相匹配

我在数据库中有一个表,其中有一些列。我在我的存储库类中从该表中获得一些记录的列表。因此,我将有如下内容:

现在,我想删除特殊列(此处为“代码”列)中具有相同值的记录,如下所示:

我的意思是,我只希望有一个记录具有相同的代码列值。
如何在实体框架中实现这一点?

让您有两个表
表1
表2
,并且希望删除所有记录 从
表1
中,它们在表2中具有相同的
代码
编号。 这是您的要求

1.首先,您必须获得表2中代码列的所有值

  • var x=db.table2.Select(p=>p.code)然后您必须将其与表1相匹配
    之后,您将删除这些代码的记录
  • 为此,您必须在下面编写一段代码

    foreach(x中的变量项) { var y=db.table1.Where(p=>p.code==item).FirstOrDefault(); 如果(y!=null) { db.表1.删除对象(y); db.SaveChanges(); } 其他的 { } }


  • code
    列分组,跳过每组的第一条记录并删除其余记录:

    var query = db.Records.GroupBy(r => r.Code)
                  .Select(grouping => grouping.OrderBy(ent => ent.EntityId).Skip(1));
    
    foreach (var element in query.SelectMany (q => q))
    {
        db.Records.Remove(element);
    }
    
    db.SaveChanges();
    

    应该保留哪一排?没关系吧?第一?Max(姓名)?不。没关系。我只想删除一个特殊列(这里是代码列)中具有相同值的记录。@HamidReza有多少行?10、100、1000或更多?我想要5排。谢谢。