我有一个像对象的列表 名单 category有属性,CategoryId,CategoryName,Categorymessage,
我必须使用此列表来更新数据库表中的记录 类别,具有相同的列CategoryId,CategoryName,CategoryMessage 对于列表中具有与数据库表中匹配的CategoryId
的项目如何使用Entity框架扩展进行批量更新, 我看到的例子的更新值硬编码如下,(statusId = 2), 而对我来说,必须从列表中与数据库表中的categoryId匹配的项中检索值。
context.Tasks.Update(
t => t.StatusId == 1,
t => new Task {StatusId = 2});
提前致谢。
答案 0 :(得分:0)
我不确定这是否是您要找的?我没有运行此代码。
List<Category> categoryList = new List<Category> {
new Category { Id = 1, Message = "A", Name = "A"},
new Category { Id = 2, Message = "B", Name = "B"},
new Category { Id = 3, Message = "C", Name = "C"},
new Category { Id = 4, Message = "D", Name = "D"},
};
using (var container = new Model1Container())
{
IQueryable<Category> categoryQueryable = container.Categories.Where(x => categoryList.Any(t => t.Id == x.Id));
foreach (Category item in categoryQueryable)
{
var categorySource = categoryList.Where(x => x.Id == item.Id).Select(m => m).FirstOrDefault();
item.Message = categorySource.Message;
item.Name = categorySource.Message;
}
container.SaveChanges();
}