我想执行删除操作,以便在我正在开发的某个Android应用程序中取消用户的联系。以下方法返回"完成"但数据不会从表中删除。这有什么问题?
public string deleteFriend(int user, int friend) {
int i = db.Friends.Where(x => x.Person.Id == user && x.Person1.Id == friend).Select(x => x.Id).First();
var rec=db.Friends.ToList();
rec.RemoveAll(x=>rec.Any(xx=>xx.Id==i));
db.SaveChanges();
return "Done";
}
我正在使用实体框架LINQ。
答案 0 :(得分:8)
尝试这样的事情:
var friend = db.Friends.Where (x=>x.person.Id == user && x.Person1.Id == friend).FirstorDefault();
if (friend != null)
{
db.friends.Remove(friend);
db.SaveChanges()
}
如果你有多个记录,那么你可以摆脱firstOrDefault并最后添加.ToList()。 而不是使用db.friends.RemoveRange(朋友)
它更干净,希望这有帮助
由于
答案 1 :(得分:1)
使用(1,2,3)中的ID
List<int> ids = new List<int>(){1,2,3};
var table1 = _context.table1.Where(x => ids.Contains(x.Id)).ToList();
if (table1 != null && table1.Count > 0) {
_context.table1.RemoveRange(table1 );
_context.SaveChanges();
}