/// <summary>
/// 异步修改集合,修改指定的列
/// </summary>
/// <param name="list">集合</param>
/// <param name="column">指定的列,参考 id,name。要修改的列名传入数组</param>
/// <returns></returns>
public async Task<int> UpdateListAsync(List<T> list, string[] column)
{
foreach (var entity in list)
{
var entry = dbContext.Entry(entity);
entry.State = EntityState.Modified;
foreach (var item in column)
{
entry.Property(item).IsModified = true;
}
var listP= entry.Properties.ToList();
listP.RemoveAll(w=>w.Metadata.IsPrimaryKey());
foreach (var item in listP)
{
string itemName= item.Metadata.Name;//字段名称
//bool isKey= item.Metadata.IsPrimaryKey();
//if (isKey)
//{
// continue;
//}
if (column.Contains(itemName))
{
continue;
}
item.IsModified = false;
}
}
//dbSet.UpdateRange(list);
return await dbContext.SaveChangesAsync();
}
//调用参考:
/// <summary>
/// 批量删除
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public async Task<int> DeleteByIdsAsync(string ids)
{
int count = 0;
_unitOfWork.BeginTransaction();
try
{
List<Media> list = new List<Media>();
string[] arr = ids.Split(",");
foreach (var id in arr)
{
list.Add(new Media() { Id = id, DataState = (short)EDataState.Delete });
}
count = await _mediaDal.UpdateListAsync(list, new string[] { "DataState" });
_unitOfWork.CommitTransaction();
}
catch (Exception ex)
{
_unitOfWork.RollBackTransaction();
}
return count;
}