diff --git a/API/TaskManager.EntityFramework/Repository/Repository.cs b/API/TaskManager.EntityFramework/Repository/Repository.cs
index 194f9b5..269ee01 100644
--- a/API/TaskManager.EntityFramework/Repository/Repository.cs
+++ b/API/TaskManager.EntityFramework/Repository/Repository.cs
@@ -55,10 +55,6 @@ namespace TaskManager.EntityFramework.Repository
public async Task UpdateAsync(TEntity entity)
{
- //product 已前台更新后
- _context.Attach(entity);
- _context.Entry(entity).State = EntityState.Modified;
-
_dbSet.Update(entity);
await _context.SaveChangesAsync();
}
diff --git a/API/Wood.Service/Controllers/NormalBaseController.cs b/API/Wood.Service/Controllers/NormalBaseController.cs
index a85e18a..00190e7 100644
--- a/API/Wood.Service/Controllers/NormalBaseController.cs
+++ b/API/Wood.Service/Controllers/NormalBaseController.cs
@@ -75,14 +75,14 @@ namespace Wood.Service.Controllers
///
///
[HttpPut("{id}")]
- public async virtual Task Update(T entity)
+ public async virtual Task Update(long UId, T entity)
{
- var _first = await _repository.GetByIdAsync(entity.UId);
+ var _first = await _repository.GetByIdAsync(UId);
if (_first == null)
{
return new JsonResult(new { Code = 400, Message = "修改失败!" });
}
-
+ EntityMapper.Trans(_first, entity, "UId");
await _repository.UpdateAsync(entity);
return new JsonResult(new { Code = 200, Message = "修改成功!" });
diff --git a/API/Wood.Service/Datas/SupplierEmployeeDtService.cs b/API/Wood.Service/Datas/SupplierEmployeeDtService.cs
index b1e71ab..e023705 100644
--- a/API/Wood.Service/Datas/SupplierEmployeeDtService.cs
+++ b/API/Wood.Service/Datas/SupplierEmployeeDtService.cs
@@ -82,7 +82,7 @@ namespace Wood.Service.Datas
//添加任务明细
foreach (var empDtObj in entityLst)
{
- SUPPLIER_EMPLOYEE empObj = ExpressionGenericMapper.Trans(empDtObj);
+ SUPPLIER_EMPLOYEE empObj = EntityMapper.Trans(empDtObj);
empObj.TaskId = taskSubObj.TaskId;
await _supplierEmployeeRepository.AddAsync(empObj);
}
@@ -106,7 +106,7 @@ namespace Wood.Service.Datas
{
empDtObj.UId = firstObj.UId;
empDtObj.CreationTime = CommonHelper.CurrentTime;
- var ret = await base.Update(empDtObj);
+ var ret = await base.Update(firstObj.UId, empDtObj);
}
}
#endregion
@@ -131,7 +131,7 @@ namespace Wood.Service.Datas
TaskSub taskSubObj = _commonService.BuildTaskSub(1, _taskName);
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_EMPLOYEE empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_EMPLOYEE empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierEmployeeRepository.AddAsync(empObj);
@@ -163,7 +163,7 @@ namespace Wood.Service.Datas
}
}
- public override async Task Update(SUPPLIER_EMPLOYEE_DT entity)
+ public override async Task Update(long UId, SUPPLIER_EMPLOYEE_DT entity)
{
using var transaction = _context.Database.BeginTransaction();
try
@@ -173,7 +173,7 @@ namespace Wood.Service.Datas
TaskSub taskSubObj = _commonService.BuildTaskSub(1, _taskName);
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_EMPLOYEE empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_EMPLOYEE empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierEmployeeRepository.AddAsync(empObj);
@@ -191,7 +191,7 @@ namespace Wood.Service.Datas
}
else
{
- var ret = await base.Update(entity);
+ var ret = await base.Update(firstObj.UId, entity);
}
#endregion
diff --git a/API/Wood.Service/Datas/SupplierInfoDtService.cs b/API/Wood.Service/Datas/SupplierInfoDtService.cs
index c93c52c..347f98a 100644
--- a/API/Wood.Service/Datas/SupplierInfoDtService.cs
+++ b/API/Wood.Service/Datas/SupplierInfoDtService.cs
@@ -81,7 +81,7 @@ namespace Wood.Service.Datas
//添加任务明细
foreach (var empDtObj in entityLst)
{
- SUPPLIER_INFO empObj = ExpressionGenericMapper.Trans(empDtObj);
+ SUPPLIER_INFO empObj = EntityMapper.Trans(empDtObj);
empObj.TaskId = taskSubObj.TaskId;
await _supplierInfoRepository.AddAsync(empObj);
}
@@ -104,7 +104,7 @@ namespace Wood.Service.Datas
{
empDtObj.UId = firstObj.UId;
empDtObj.CreationTime = CommonHelper.CurrentTime;
- var ret = await base.Update(empDtObj);
+ var ret = await base.Update(firstObj.UId, empDtObj);
}
}
#endregion
@@ -131,7 +131,7 @@ namespace Wood.Service.Datas
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_INFO empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_INFO empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierInfoRepository.AddAsync(empObj);
@@ -162,7 +162,7 @@ namespace Wood.Service.Datas
}
}
- public override async Task Update(SUPPLIER_INFO_DT entity)
+ public override async Task Update(long UId, SUPPLIER_INFO_DT entity)
{
using var transaction = _context.Database.BeginTransaction();
try
@@ -172,7 +172,7 @@ namespace Wood.Service.Datas
TaskSub taskSubObj = _commonService.BuildTaskSub(1, _taskName);
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_INFO empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_INFO empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierInfoRepository.AddAsync(empObj);
@@ -189,7 +189,7 @@ namespace Wood.Service.Datas
}
else
{
- var ret = await base.Update(entity);
+ var ret = await base.Update(firstObj.UId, entity);
}
#endregion
diff --git a/API/Wood.Service/Datas/SupplierProAttachmentDataDtService.cs b/API/Wood.Service/Datas/SupplierProAttachmentDataDtService.cs
index 81e0c11..bfbe29f 100644
--- a/API/Wood.Service/Datas/SupplierProAttachmentDataDtService.cs
+++ b/API/Wood.Service/Datas/SupplierProAttachmentDataDtService.cs
@@ -82,7 +82,7 @@ namespace Wood.Service.Datas
//添加任务明细
foreach (var empDtObj in entityLst)
{
- SUPPLIER_PRO_ATTACHMENT_DATA empObj = ExpressionGenericMapper.Trans(empDtObj);
+ SUPPLIER_PRO_ATTACHMENT_DATA empObj = EntityMapper.Trans(empDtObj);
empObj.TaskId = taskSubObj.TaskId;
await _supplierProAttachmentDataRepository.AddAsync(empObj);
}
@@ -114,7 +114,7 @@ namespace Wood.Service.Datas
TaskSub taskSubObj = _commonService.BuildTaskSub(1, _taskName);
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_PRO_ATTACHMENT_DATA empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_PRO_ATTACHMENT_DATA empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierProAttachmentDataRepository.AddAsync(empObj);
diff --git a/API/Wood.Service/Datas/SupplierProProcessEquipmentDtService.cs b/API/Wood.Service/Datas/SupplierProProcessEquipmentDtService.cs
index f237114..c3ad5cf 100644
--- a/API/Wood.Service/Datas/SupplierProProcessEquipmentDtService.cs
+++ b/API/Wood.Service/Datas/SupplierProProcessEquipmentDtService.cs
@@ -82,7 +82,7 @@ namespace Wood.Service.Datas
//添加任务明细
foreach (var empDtObj in entityLst)
{
- SUPPLIER_PRO_PROCESS_EQUIPMENT empObj = ExpressionGenericMapper.Trans(empDtObj);
+ SUPPLIER_PRO_PROCESS_EQUIPMENT empObj = EntityMapper.Trans(empDtObj);
empObj.TaskId = taskSubObj.TaskId;
await _supplierProProcessEquipmentRepository.AddAsync(empObj);
}
@@ -104,7 +104,7 @@ namespace Wood.Service.Datas
{
empDtObj.UId = firstObj.UId;
empDtObj.CreationTime = CommonHelper.CurrentTime;
- var ret = await base.Update(empDtObj);
+ var ret = await base.Update(firstObj.UId, empDtObj);
}
}
#endregion
@@ -129,7 +129,7 @@ namespace Wood.Service.Datas
TaskSub taskSubObj = _commonService.BuildTaskSub(1, _taskName);
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_PRO_PROCESS_EQUIPMENT empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_PRO_PROCESS_EQUIPMENT empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierProProcessEquipmentRepository.AddAsync(empObj);
@@ -159,7 +159,7 @@ namespace Wood.Service.Datas
}
}
- public override async Task Update(SUPPLIER_PRO_PROCESS_EQUIPMENT_DT entity)
+ public override async Task Update(long UId, SUPPLIER_PRO_PROCESS_EQUIPMENT_DT entity)
{
using var transaction = _context.Database.BeginTransaction();
try
@@ -169,7 +169,7 @@ namespace Wood.Service.Datas
TaskSub taskSubObj = _commonService.BuildTaskSub(1, _taskName);
await _taskSubRepository.AddAsync(taskSubObj);
//添加任务明细
- SUPPLIER_PRO_PROCESS_EQUIPMENT empObj = ExpressionGenericMapper.Trans(entity);
+ SUPPLIER_PRO_PROCESS_EQUIPMENT empObj = EntityMapper.Trans(entity);
empObj.TaskId = taskSubObj.TaskId;
await _supplierProProcessEquipmentRepository.AddAsync(empObj);
@@ -185,7 +185,7 @@ namespace Wood.Service.Datas
}
else
{
- var ret = await base.Update(entity);
+ var ret = await base.Update(firstObj.UId, entity);
}
#endregion
diff --git a/API/Wood.Util/CommonHelper.cs b/API/Wood.Util/CommonHelper.cs
index 3736a81..c00104d 100644
--- a/API/Wood.Util/CommonHelper.cs
+++ b/API/Wood.Util/CommonHelper.cs
@@ -65,10 +65,10 @@ namespace Wood.Util
///
///
///
- public class ExpressionGenericMapper//Mapper`2
+ public class EntityMapper//Mapper`2
{
private static Func _FUNC = null;
- static ExpressionGenericMapper()
+ static EntityMapper()
{
ParameterExpression parameterExpression = Expression.Parameter(typeof(TIn), "p");
List memberBindingList = new List();
@@ -96,4 +96,43 @@ namespace Wood.Util
return _FUNC(t);
}
}
+
+
+ ///
+ /// 反射实现Mapper
+ ///
+ public class EntityMapper
+ {
+ ///
+ /// 反射
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void Trans(TIn tIn, TOut tOut, string excludeMembers = "")
+ {
+ string[] excludeMemberArr = excludeMembers.Split(",").Select(itm => itm.Trim()).ToArray();
+
+ foreach (var itemOut in tOut.GetType().GetProperties())
+ {
+ if (excludeMemberArr.Contains(itemOut.Name))
+ {
+ continue;
+ }
+ var propIn = tIn.GetType().GetProperty(itemOut.Name);
+ itemOut.SetValue(tOut, propIn.GetValue(tIn, null), null);
+ }
+
+ foreach (var itemOut in tOut.GetType().GetFields())
+ {
+ if (excludeMemberArr.Contains(itemOut.Name))
+ {
+ continue;
+ }
+ var fieldIn = tIn.GetType().GetField(itemOut.Name);
+ itemOut.SetValue(tOut, fieldIn.GetValue(tIn));
+ }
+ }
+ }
}