Để cập nhật một cột, đây là một số tùy chọn cú pháp:
lựa chọn 1
var ls=new int[]{2,3,4};
using (var db=new SomeDatabaseContext())
{
var some= db.SomeTable.Where(x=>ls.Contains(x.friendid)).ToList();
some.ForEach(a=>a.status=true);
db.SubmitChanges();
}
Lựa chọn 2
using (var db=new SomeDatabaseContext())
{
db.SomeTable
.Where(x=>ls.Contains(x.friendid))
.ToList()
.ForEach(a=>a.status=true);
db.SubmitChanges();
}
Lựa chọn 3
using (var db=new SomeDatabaseContext())
{
foreach (var some in db.SomeTable.Where(x=>ls.Contains(x.friendid)).ToList())
{
some.status=true;
}
db.SubmitChanges();
}
Cập nhật
Theo yêu cầu trong nhận xét, có thể có ý nghĩa khi hiển thị cách cập nhật nhiều cột. Vì vậy, giả sử vì mục đích của bài tập này rằng chúng tôi không chỉ muốn cập nhật status
những cái mới nhất. Chúng tôi muốn cập nhật name
và status
vị trí friendid
phù hợp. Dưới đây là một số tùy chọn cú pháp cho điều đó:
lựa chọn 1
var ls=new int[]{2,3,4};
var name="Foo";
using (var db=new SomeDatabaseContext())
{
var some= db.SomeTable.Where(x=>ls.Contains(x.friendid)).ToList();
some.ForEach(a=>
{
a.status=true;
a.name=name;
}
);
db.SubmitChanges();
}
Lựa chọn 2
using (var db=new SomeDatabaseContext())
{
db.SomeTable
.Where(x=>ls.Contains(x.friendid))
.ToList()
.ForEach(a=>
{
a.status=true;
a.name=name;
}
);
db.SubmitChanges();
}
Lựa chọn 3
using (var db=new SomeDatabaseContext())
{
foreach (var some in db.SomeTable.Where(x=>ls.Contains(x.friendid)).ToList())
{
some.status=true;
some.name=name;
}
db.SubmitChanges();
}
Cập nhật 2
Trong câu trả lời, tôi đã sử dụng LINQ to SQL và trong trường hợp đó để cam kết với cơ sở dữ liệu, cách sử dụng là:
db.SubmitChanges();
Nhưng để Entity Framework thực hiện các thay đổi thì đó là:
db.SaveChanges()
records.ForEach(x=> { x.Deleted = true; x.DeletedByUserID = deletedByUserId; x.DeletedOn = DateTime.Now; });