Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何在实体框架中获取仅回滚失败记录的SaveChanges方法?_Entity Framework_Transactions - Fatal编程技术网

Entity framework 如何在实体框架中获取仅回滚失败记录的SaveChanges方法?

Entity framework 如何在实体框架中获取仅回滚失败记录的SaveChanges方法?,entity-framework,transactions,Entity Framework,Transactions,我有一个场景,我想在数据库表中插入数百条记录,并将它们作为块(例如10条记录)插入,我需要实体框架仅回滚失败的记录并将失败的记录返回给我 我的第一个问题是,我如何才能做到这一点 我的第二个问题是,无论我上面提到的情况如何,是否有插入大量记录的良好做法 StatelessSession session=factory.openStatelessSession(); StatelessSession session = factory.openStatelessSession(); Transact

我有一个场景,我想在数据库表中插入数百条记录,并将它们作为块(例如10条记录)插入,我需要实体框架仅回滚失败的记录并将失败的记录返回给我

我的第一个问题是,我如何才能做到这一点

我的第二个问题是,无论我上面提到的情况如何,是否有插入大量记录的良好做法

StatelessSession session=factory.openStatelessSession();
StatelessSession session = factory.openStatelessSession();
Transaction tx = session.beginTransaction();
for(int i = 0; i < resultItems.size(); i++) {
   try
   {
       Customer cust = new Customer(resultItems.get(i));   
       Long id = session.save(cust); // get the generated id
   }
   catch(Exception e)
   {
    //track your exceptional customer here
    System.out.println("customer not added ="+resultItems.get(i).custorName)
   }

    if(i % BATCH_SIZE == 0) {
        session.flush();
        session.clear();
    }
}
tx.commit();
session.close();
事务tx=会话.beginTransaction(); 对于(int i=0;i