У меня есть система, в которой клиент хочет переделать текущую модель так, что каждый раз, когда пользователь вносит изменение, администратор должен принять изменение до того, как оно будет записано в базу данных.
Я думал о том, чтобы сделать быстрое решение этой проблемы, переопределив SaveChanges и взяв каждый объект в ObjectStateManager и добавив его предполагаемый SQL-код в таблицу неопределенности, которая сохранит целочисленный SQL-запрос до тех пор, пока администратор его не примет (а затем запустить его).
Я знаю, что вы можете использовать ToTraceString () для запросов к базе данных, но можете ли вы каким-то образом получить запрос sql для объекта, взятого из ObjectStateManager?
Думал что-то вроде этого:
var modified = DB.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Modified);
foreach (var mod in modified)
{
//Insert the query to the limbo table
tblPendingChanges change = new tblPendingChanges();
//Code omitted
change.sql = mod.Query;
//Code omitted
DB.tblPendingChanges.AddObject(change);
mod.Delete();
}
DB.SaveChanges();