我正在使用Entity框架来构建应用程序。
要更新的表。
[Id] [CheckItemId] [Checked] [Comment]
1 100 1 abc
2 150 0 xyz
类别:
public class CheckListRequest
{
public int ID { get; set; }
public bool IsChecked { get; set; }
public string Comment { get; set; }
}
public static void UpdateCheckList(List<CheckListRequest> checkList){
}
如何使用LINQ使用来自前端的列表中的值更新表格多列(选中,注释)?
答案 0 :(得分:3)
假设dbContext
是DataContext
且Id
是表格的主键,请尝试以下操作:
public static void UpdateCheckList(List<CheckListRequest> checkList)
{
foreach (CheckListRequest clr in checkList)
{
CheckListRequest clrInDB = dbContext.CheckListRequests.SingleOrDefault(o.Id == clr.Id);
clrInDB.IsChecked = clr.IsChecked;
clrInDB.Comment = clr.Comment;
}
dbContext.SaveChanges();
}
答案 1 :(得分:0)
如何使用值
更新表格多列(选中,注释)
完全相同的方式只更新一列...
SaveChanges()
方法。using(var ctx = new MyContext())
{
var entity = ctx.Table.First(t => t.Id == myId);
entity.Prop1 = "newValue";
entity.Prop2 = 23;
ctx.SaveChanges();
}
答案 2 :(得分:0)
您可以在列表中使用foreach循环,如下所示:
public static void UpdateCheckList(List<CheckListRequest> checkList)
{
checkList.foreach(CL =>{
CheckListRequest objCLR= DataContext.CheckListRequests
.SingleOrDefault(E => E.Id == CL.Id);
objCLR.IsChecked = CL.IsChecked;
objCLR.Comment = CL.Comment;
});
DataContext.SaveChanges();
}
答案 3 :(得分:0)
您可以如下所示使用ForEachAsync或ForEach
var actionTakenOnEndorsement = _context.Endorsement.Where(x => x.IsDeleted == false && x.IsApproved != null).OrderBy(o => o.SolutionId).ThenByDescending(o => o.ModifiedOn).DistinctBy(x => new { x.SolutionId, x.UserId }).AsQueryable();
await actionTakenOnEndorsement.ForEachAsync(x => { x.IsEndorsementRevoked = true; x.Comment = "Revoked by system"; });