我在数据库中有一个表有一些列。我在我的存储库类中得到了这个表中的一些记录的列表。所以我会有这样的事情:
现在我要删除特殊列中的相同值的记录(此处位于“代码”列中),如下所示:
我的意思是我想只拥有一个具有相同Code列值的记录。 我怎样才能在Entity Framework中做到这一点?
答案 0 :(得分:0)
让您有两个表Table1
和table2
,并且您想要删除所有记录
来自table1
的{2}在表2中具有相同的code
个数字。
这是您的要求
1.首先,您必须获取table2的所有代码列值
var x = db.table2.Select(p => p.code);
然后你必须用table1扼杀它
之后你删除了那些代码的记录是相同的。为此你必须在下面写一段代码。
foreach(x中的var项) { var y = db.table1.Where(p => p.code == item).FirstOrDefault(); if(y!= null) { db.table1.DeleteObject(Y); db.SaveChanges(); } 其他 { } }
答案 1 :(得分: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();