У меня есть часть моего кода, которая обновляет две базы данных A и B, которые используются в двух разных системах. База данных A является основной, поэтому запись не может существовать в базе данных B, если она не существует в базе данных A.
Поэтому я нашел быстрое решение для проверки успешности базы данных A с одной незначительной проблемой: столбец первичного ключа автоматически увеличивается каждый раз, когда я выполняю проверку, поэтому мой идентификатор увеличивается на 2. Это не вызывает никаких проблем, но я хотел бы найти более эффективное решение.
public void UpdateDatabases(Product model)
{
bool verify_A = SaveDatabaseA(model, true);
if(verify_A)
{
bool save_B = SaveDatabaseB(model);
if(save_B)
{
bool save_A = SaveDatabaseA(model, false);
if(save_A)
{
//Show notification
}
}
}
}
public bool SaveDatabaseA(Product model, bool verificationOnly = false)
{
var result = true;
try
{
using (var entities = new entities())
{
using (var dbContextTransaction = entities.Database.BeginTransaction())
{
try
{
// Update code here....
if (!verificationOnly)
{
dbContextTransaction.Commit();
}
dbContextTransaction.Dispose();
}
catch (Exception ex)
{
response = false;
dbContextTransaction.Rollback();
dbContextTransaction.Dispose();
LogErrors(ex, userID);
}
}
}
}
catch (Exception ex)
{
response = false;
LogErrors(ex, userID);
}
return response;
}