在实体框架中删除
本文关键字:删除 框架 实体 | 更新日期: 2023-09-27 18:08:56
我使用这个代码来删除实体框架中的记录(几个记录)
var tag = from t in objLib.TagsField where t.Book_ID_FK == id select t;
foreach (var t in tag)
{
objLib.TagsField.Context.DeleteObject(t);
objLib.SaveChanges();
}
我如何删除它而不使用每个这个代码(它需要时间!!)
之后调用SaveChanges:
var tag = from t in objLib.TagsField where t.Book_ID_FK == id select t;
foreach (var t in tag)
{
objLib.TagsField.Context.DeleteObject(t);
}
objLib.SaveChanges();
使用LINQ删除将把您要删除的所有行带入内存。如果它们不在内存中,那么发出SQL语句从数据库中删除这些行会更快。
除此之外,我会尝试david的回答,因为EF可以将更新放在一起…我想这也会提高你的表现。
我用这个来实现同样的事情…我正在使用实体框架5。我知道Using()块现在可以使用,并且是推荐使用的,但是这里有一些基本的命令,可以为我添加一些替代方案:
/// <summary>
/// Method that will remove a favorite from the tblfavorite table.
/// </summary>
/// <param name="favoriteID"></param>
/// <returns></returns>
public Boolean DeleteFavoriteByFavoriteID(Int32 favoriteID)
{
//Assume not found.
IsFound = false;
//Query the DB.
var MatchedRec = (from f in dbContext.tblfavorites
where f.FavoriteID == favoriteID
select f).FirstOrDefault();
//See if anything was found.
if (MatchedRec != null)
{
IsFound = true;
dbContext.tblfavorites.Remove(MatchedRec);
dbContext.SaveChanges();
return true;
}
//Default.
return false;
}