2013-03-05 55 views
0

我在数据库中的表,有一些columns.I获得从该表在我的仓库的一些记录列表class.So我都会有这样的事情:如何删除实体框架中列中具有相同值的记录?

enter image description here

现在我想删除那些在(在代码列在这里)的特殊列的值相同的记录,像这样:

enter image description here

我的意思是我想刚才的那个有相同的代码列值的记录之一。 我如何在实体框架中做到这一点?

+0

和行应保持?没关系?第一?马克斯(名字)? – 2013-03-05 06:03:46

+0

不需要。我只是想删除一个特殊列(这里是代码列)中具有相同值的记录。 – 2013-03-05 07:03:55

+0

@HamidReza有多少行? 10个,100个,1000个或更多? – qujck 2013-03-05 08:57:08

回答

0

让你有两个表Table1table2和要删除所有,它们是在表2相同code号记录 从table1这是您的要求

1.首先,你必须得到

  1. var x = db.table2.Select(p => p.code);那么你有后,与表1 到comapre它的表2的代码列的所有值,你必须删除记录这些代码是相同的。
  2. 因为你必须写下面的一段代码。

    foreach(var in x) var y = db.table1.Where(p => p.code == item).FirstOrDefault(); if(y!= null) { db.table1.DeleteObject(y); db.SaveChanges(); } 其他 {} }

0

集团由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(); 
相关问题