An ORM framework may be overkill for simpler requirements. There are also 'lighter' ORM frameworks than EF, although EF is tightly integrated into Visual Studio. If you just wanted to update a table (Visual FoxPro in this case but the same applies to any back end) you could do something like below. Note use of parameters. Names changed to protect the innocent.
class CustomerDocketWriter : AccountsSoftwareWriterAbstract { public Boolean DoProcessDocket(CustomerDocket updateDocket, SeqcoCompany thisCompany, DateTime stampDate) { UpdateOK = true; AccountsSoftwareConnection.ConnectionString = thisCompany.DataConnectionString; CommandString = @"update swimsinv where id=? set uploaded=.t., upwhen = ?"; AccountsSoftwareCommand.CommandText = CommandString; AccountsSoftwareCommand.Connection = AccountsSoftwareConnection; AccountsSoftwareConnection.Open(); AccountsSoftwareCommand.Parameters.Clear(); OleDbTransaction AccountsSoftwareTxn = AccountsSoftwareConnection.BeginTransaction(); AccountsSoftwareCommand.Transaction = AccountsSoftwareTxn; AccountsSoftwareCommand.Parameters.Add("@lnId", OleDbType.Integer); AccountsSoftwareCommand.Parameters.Add("@ltStamp", OleDbType.DBTimeStamp); AccountsSoftwareCommand.Parameters["@lnId"].Value = updateDocket.id; AccountsSoftwareCommand.Parameters["@ltStamp"].Value = stampDate;
// -- Attempt to execute. try { AccountsSoftwareCommand.ExecuteNonQuery(); } catch (OleDbException ex) { UpdateError = ex.Message; UpdateOK = false; }
// -- Did it work ? if (UpdateOK == true) { // -- Then try to commit. try { AccountsSoftwareTxn.Commit(); } catch (Exception ex) { if (AccountsSoftwareWriterLogger.IsErrorEnabled) AccountsSoftwareWriterLogger.Error("Error committing SWIMSINV update to AccountsSoftware:" + ex.Message);
AccountsSoftwareTxn.Rollback(); } } else AccountsSoftwareTxn.Rollback();
AccountsSoftwareConnection.Close();
return UpdateOK;
}