SaveChanges() 只影响一行
SaveChanges() only affects one row
我想删除一些记录,我尝试使用以下代码:
if (objDetail != null)
{
objContext.DetailVouchers.RemoveRange(
objContext.DetailVouchers.Where(t => t.REFNO == strRefNo));
objContext.SaveChanges();
}
但它只删除了最后一条记录,并没有删除所有记录。
我的上下文 Class 是
class MainContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//base.OnModelCreating(modelBuilder);
Database.SetInitializer<MainContext>(null);
modelBuilder.Entity<MainVoucher>().ToTable("TBL_ACC_VOUCHER_MAIN");
modelBuilder.Entity<MainVoucher>().HasKey(t => new { t.REFNO });
modelBuilder.Entity<DetailVoucher>().ToTable("TBL_ACC_VOUCHER_DETAIL");
modelBuilder.Entity<DetailVoucher>().HasKey(t => new { t.REFNO });
}
}
并创建上下文 class 对象,例如
MainContext objContext = new MainContext();
试试这个。[编辑]
var items = objContext.DetailVouchers.Where(t => t.REFNO == strRefNo);
objContext.DetailVouchers.RemoveRange(items);
context.SaveChanges();
在使用 RemoveRange 之前,您必须列出要删除的项目。
在第一行使用 ToList() 尝试 reza 的解决方案:
var items = objContext.DetailVouchers.Where(t => t.REFNO == strRefNo).ToList();
objContext.DetailVouchers.RemoveRange(items);
context.SaveChanges();
我想删除一些记录,我尝试使用以下代码:
if (objDetail != null)
{
objContext.DetailVouchers.RemoveRange(
objContext.DetailVouchers.Where(t => t.REFNO == strRefNo));
objContext.SaveChanges();
}
但它只删除了最后一条记录,并没有删除所有记录。
我的上下文 Class 是
class MainContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//base.OnModelCreating(modelBuilder);
Database.SetInitializer<MainContext>(null);
modelBuilder.Entity<MainVoucher>().ToTable("TBL_ACC_VOUCHER_MAIN");
modelBuilder.Entity<MainVoucher>().HasKey(t => new { t.REFNO });
modelBuilder.Entity<DetailVoucher>().ToTable("TBL_ACC_VOUCHER_DETAIL");
modelBuilder.Entity<DetailVoucher>().HasKey(t => new { t.REFNO });
}
}
并创建上下文 class 对象,例如
MainContext objContext = new MainContext();
试试这个。[编辑]
var items = objContext.DetailVouchers.Where(t => t.REFNO == strRefNo);
objContext.DetailVouchers.RemoveRange(items);
context.SaveChanges();
在使用 RemoveRange 之前,您必须列出要删除的项目。 在第一行使用 ToList() 尝试 reza 的解决方案:
var items = objContext.DetailVouchers.Where(t => t.REFNO == strRefNo).ToList();
objContext.DetailVouchers.RemoveRange(items);
context.SaveChanges();