Browse Source

mark items as edited before convertings to dbo

tags/v0.2.2
Robin Thoni 7 years ago
parent
commit
f948c5985d
2 changed files with 13 additions and 7 deletions
  1. 2
    3
      Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs
  2. 11
    4
      TestUtils/Tests.cs

+ 2
- 3
Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs View File

281
         {
281
         {
282
             return Execute((db, table) =>
282
             return Execute((db, table) =>
283
             {
283
             {
284
-                var models = GetEditQueryable(db, table).Where(predicate).AsNoTracking();
285
-                var editedDbos = new List<TDboRead>();
284
+                var models = GetEditQueryable(db, table).Where(predicate).AsNoTracking().ToList();
286
                 foreach (var model in models)
285
                 foreach (var model in models)
287
                 {
286
                 {
288
                     update(model);
287
                     update(model);
289
-                    editedDbos.Add(GetDboFromModel(model));
290
                     db.Entry(model).State = EntityState.Modified;
288
                     db.Entry(model).State = EntityState.Modified;
291
                 }
289
                 }
292
                 db.SaveChanges();
290
                 db.SaveChanges();
291
+                var editedDbos = models.Select(GetDboFromModel).ToList();
293
                 var res = returnFunc(editedDbos);
292
                 var res = returnFunc(editedDbos);
294
                 return LuResult<T>.Ok(res);
293
                 return LuResult<T>.Ok(res);
295
             });
294
             });

+ 11
- 4
TestUtils/Tests.cs View File

17
                 ServiceLifetime.Transient);
17
                 ServiceLifetime.Transient);
18
             var serviceProvider = serviceCollection.BuildServiceProvider();
18
             var serviceProvider = serviceCollection.BuildServiceProvider();
19
             var dbContext = (LuUtilsDbContext)serviceProvider.GetService(typeof(LuUtilsDbContext));
19
             var dbContext = (LuUtilsDbContext)serviceProvider.GetService(typeof(LuUtilsDbContext));
20
-            func(serviceProvider);
21
-            dbContext.pk_bigserial.RemoveRange(dbContext.pk_bigserial);
22
-            dbContext.pk_guid.RemoveRange(dbContext.pk_guid);
23
-            dbContext.SaveChanges();
20
+            try
21
+            {
22
+                func(serviceProvider);
23
+            }
24
+            finally
25
+            {
26
+                dbContext.pk_bigserial.RemoveRange(dbContext.pk_bigserial);
27
+                dbContext.pk_guid.RemoveRange(dbContext.pk_guid);
28
+                dbContext.SaveChanges();
29
+                dbContext.Dispose();
30
+            }
24
         }
31
         }
25
     }
32
     }
26
 }
33
 }

Loading…
Cancel
Save