EF 6 RemoveRange 不适用于 List<entity>
EF 6 RemoveRange not working with List<entity>
我有一个实体 (MyEntity
),其 PK 是另一个实体的 FK。 MyEntity
有一个 DateTime
(时间戳)属性。我想从我的数据库中删除所有早于给定时间的条目(包括 MyEntity
table 和与 FK 链接的其他 table 的条目)。
我正在尝试使用以下代码执行此操作,但似乎 RemoveRange
什么也没做(即使 entities List
已成功填充)。当我签入 SSMS 时,我的 table 中 运行 代码前后的行数仍然相同。
我错过了什么?
DateTime dateNow = DateTime.Now;
DateTime dateLimit = dateNow.AddMinutes(-1);
List<MyEntity> entities = null;
using (MyContext context = new MyContext())
{
entities = context.MyEntity.Where(x => x.Timestamp < dateLimit).ToList();
context.MyEntity.RemoveRange(entities);
context.SaveChanges();
}
我认为 using
语句之外的列表可能会给您带来问题。尝试以下方法,看看它是否适合您。
DateTime dateLimit = DateTime.Now.AddMinutes(-1);
using (MyContext context = new MyContext())
{
var entities = context.MyEntity.Where(x => x.Timestamp < dateLimit);
context.MyEntity.RemoveRange(entities);
context.SaveChanges();
}
我有一个实体 (MyEntity
),其 PK 是另一个实体的 FK。 MyEntity
有一个 DateTime
(时间戳)属性。我想从我的数据库中删除所有早于给定时间的条目(包括 MyEntity
table 和与 FK 链接的其他 table 的条目)。
我正在尝试使用以下代码执行此操作,但似乎 RemoveRange
什么也没做(即使 entities List
已成功填充)。当我签入 SSMS 时,我的 table 中 运行 代码前后的行数仍然相同。
我错过了什么?
DateTime dateNow = DateTime.Now;
DateTime dateLimit = dateNow.AddMinutes(-1);
List<MyEntity> entities = null;
using (MyContext context = new MyContext())
{
entities = context.MyEntity.Where(x => x.Timestamp < dateLimit).ToList();
context.MyEntity.RemoveRange(entities);
context.SaveChanges();
}
我认为 using
语句之外的列表可能会给您带来问题。尝试以下方法,看看它是否适合您。
DateTime dateLimit = DateTime.Now.AddMinutes(-1);
using (MyContext context = new MyContext())
{
var entities = context.MyEntity.Where(x => x.Timestamp < dateLimit);
context.MyEntity.RemoveRange(entities);
context.SaveChanges();
}