Вы ничего не получаете, фактически используя использование (и, как вы заметили, оно на самом деле не будет компилироваться).
Завершение вашего кода создания объекта в операторах «using» гарантирует, что созданный вами объект будет удален при выходе из блока «using». Это имеет смысл только для объекта, который реализует IDisposable, потому что другие типы не могут быть явно удалены.
Вы можете безопасно удалить свой блок использования и получить следующее:
_db = DatabaseFactory.CreateDatabase("NLayerDB");
DbCommand dbCommand = _db.GetStoredProcCommand("someSPName");
_db.AddInParameter(dbCommand, "Id", DbType.Int32, id);
result = _db.ExecuteNonQuery(dbCommand);
Если DbCommand реализует IDisposable (я не уверен, что никогда не использовал DAAB EntLib), тогда вы можете захотеть обернуть только эту часть кода в блок using:
_db = DatabaseFactory.CreateDatabase("NLayerDB");
using (DbCommand dbCommand = _db.GetStoredProcCommand("someSPName"))
{
_db.AddInParameter(dbCommand, "Id", DbType.Int32, id);
result = _db.ExecuteNonQuery(dbCommand);
}