使用ABP框架踩过的坑系列4
数据库连接和事务管理,是数据库应用中的最重要概念之一。做过的人,都会头疼:何时Open一个连接?何时Start一个事务?何时Dispose这个连接?... ABP框架试图用一个叫做UnitOfWork的模型来解决这些。实际开发中,引入UnitOfWork,同时也会带来一些坑。 [ UnitOfWork ] public void SaveFoodMaterials ( FoodMaterialItem food , FoodMaterialCategory cat ) { FoodMaterial fm = Mapper . Map < FoodMaterial >( food ); fm . FoodMaterialCategory = GetCategory ( cat . Name ); ; fm = FoodMaterialRepository . Insert ( fm ); foreach ( var t in food . Nutritions ) { ImportNutrition ( fm , t ); } } 这个会抛Exception: DBContext已经dispose了! [UnitOfWork]没起作用,拦截器没起作用?其实UnitOfWork还有三种使用方式:过程式、惯例、声明式 过程式 using ( var unitOfWork =