浏览代码

0212最后提交

zoule 4 月之前
父节点
当前提交
db3b1f2beb

+ 4 - 4
DW5S.App/UserControl/CtrlRefTask.cs

@@ -39,8 +39,8 @@ namespace DW5S.App.UserControl
 
                             var ids = data.Select(p => p.Id);
                             var unitOfWork = IocContainer.UnitOfWork;
-                            var reps = unitOfWork.Of<RefTaskFreq>() as RefTaskFreqRepository;
-                            await reps.UpdateEnableAsync(true, p => ids.Contains(p.Id));
+                            var reps = unitOfWork.Of<RefTaskFreq>();
+                            await reps.UpdatePropAsync(p => ids.Contains(p.Id), p => p.Enable, true);
                             await unitOfWork.SaveAsync();
 
                             data.ForEach(d => d.Enable = true);
@@ -60,8 +60,8 @@ namespace DW5S.App.UserControl
                          {
                              var ids = data.Select(p => p.Id);
                              var unitOfWork = IocContainer.UnitOfWork;
-                             var reps = unitOfWork.Of<RefTaskFreq>() as RefTaskFreqRepository;
-                             await reps.UpdateEnableAsync(false, p => ids.Contains(p.Id));
+                             var reps = unitOfWork.Of<RefTaskFreq>();
+                             await reps.UpdatePropAsync(p => ids.Contains(p.Id), p => p.Enable, false);
                              await unitOfWork.SaveAsync();
 
                              data.ForEach(d => d.Enable = false);

+ 20 - 0
DW5S.Repostory/Repository/IRepository.cs

@@ -1,5 +1,6 @@
 using DW5S.Entity;
 using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.ChangeTracking;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -22,6 +23,18 @@ namespace DW5S.Repostory
         Task<T> FirstOrDefaultAsync(Expression<Func<T, bool>> predicate = null);
         Task<T> AddOrUpdateAsync(T entity);
         Task AddOrUpdateAsync(IEnumerable<T> entitis);
+
+        /// <summary>
+        /// 修改某些字段
+        /// </summary>
+        /// <typeparam name="TProperty"></typeparam>
+        /// <param name="predicate"></param>
+        /// <param name="propertyExpression"></param>
+        /// <param name="value"></param>
+        /// <returns></returns>
+        Task<int> UpdatePropAsync<TProperty>(Expression<Func<T, bool>> predicate, Func<T, TProperty> propertyExpression, TProperty value);
+
+
         Task<int> DeleteAsync(T entity);
         Task<int> DeleteAsync(IEnumerable<T> entitis);
 
@@ -157,5 +170,12 @@ namespace DW5S.Repostory
             else
                 return dbSet.Where(predicate).MaxBy(selector);
         }
+
+        
+        public async Task<int> UpdatePropAsync<TProperty>(Expression<Func<T, bool>> predicate, Func<T, TProperty> propertyExpression, TProperty value)
+        {
+            return await dbSet.Where(predicate)
+                .ExecuteUpdateAsync(setters => setters.SetProperty(propertyExpression, value));
+        }
     }
 }

+ 0 - 36
DW5S.Repostory/Repository/RefTaskFreqRepository.cs

@@ -1,36 +0,0 @@
-using DW5S.Entity;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-using Microsoft.EntityFrameworkCore;
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Linq.Expressions;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace DW5S.Repostory
-{
-    /// <summary>
-    /// 
-    /// </summary>
-    public class RefTaskFreqRepository : Repository<RefTaskFreq>
-    {
-        public RefTaskFreqRepository(OracleContext ctx)
-            : base(ctx)
-        {
-        }
-
-        /// <summary>
-        /// 修改RefTaskFreq Enable
-        /// </summary>
-        /// <param name="satCode"></param>
-        /// <returns></returns>
-        public async Task<int> UpdateEnableAsync(bool enable, Expression<Func<RefTaskFreq, bool>> predicate = null)
-        {
-            return await dbSet.Where(predicate)
-                .ExecuteUpdateAsync(setters => setters.SetProperty(b => b.Enable, enable));
-        }
-    }
-}