Мне интересно, как сделать массовое обновление? Я хочу сделать предложение where и захватить все элементы, которые соответствуют предложению where Where(x => x.Id == 1).ToList()
, а затем выполнить обновление для всех из них.
// change every name to bob
A.Name = "bob"
// then do a mass update
Должен ли я сделать цикл foreach? И пройти через каждый из них, а затем отправить его для обновления или есть другой способ сделать это?
Спасибо
Редактировать
У меня есть это
// in my repo;
private readonly ISession session;
// session done with ninject IOC
public MyRepo(ISession session)
{
this.session = session;
}
public void MassUpdate(int id, string prefix)
{
var query = "UPDATE TableA SET Name= (:prefix) WHERE Id IN (:Id)";
session.CreateQuery(query).SetParameter("prefix", prefix).SetParameter("Id",Id);
}
public void Insert(MyClass myClass)
{
sesson.save(myClass);
}
public void Commit()
{
using (ITransaction transaction = session.BeginTransaction())
{
transaction.Commit();
}
}
// service layer method
public void myMethod()
{
MyClass myClass = nw MyClass() { Name = "test"};
MyRepo r = new Repo();
r.MassUpdate(1,"bob");
r.Insert(myClass);
r.Commit();
}
Так, как я могу настроить мой MassUpdate для выполнения в Commit (). Обратите внимание, что эта фиксация используется для всех методов в MyRepo, поэтому я не могу вставить команду execute в метод фиксации.